[elasticsearch] Lucene과 Elasticsearch의 차이점은 무엇입니까

ElasticSearch가 Apache Lucene을 기반으로한다는 것을 알고 있지만 둘 사이의 중요한 차이점을 알고 싶습니다.



답변

Lucene은 Java 라이브러리 입니다. 프로젝트에 포함시키고 함수 호출을 사용하여 해당 기능을 참조 할 수 있습니다.

Elasticsearch는 것입니다 JSON 기반, 분산 , 웹 서버 루씬 위에 지어진. Elasticsearch는 아래에서 실제 작업을 수행하고 있지만 Lucene보다 편리한 계층을 제공합니다. Elasticsearch에서 생성 된 각 샤드는 별도의 Lucene 인스턴스입니다. 요약하자면

  1. Elasticsearch는 Lucene을 기반으로 하며 Lucene 기능을 참조하기 위한 JSON 기반 REST API 를 제공합니다.
  2. Elasticsearch는 Lucene 위에 분산 시스템을 제공합니다 . 분산 시스템은 Lucene이 인식하거나 구축 한 것이 아닙니다. Elasticsearch는 이러한 분산 구조 추상화를 제공합니다.
  3. Elasticsearch는 스레드 풀, 대기열, 노드 / 클러스터 모니터링 API, 데이터 모니터링 API, 클러스터 관리 등과 같은 다른 지원 기능을 제공합니다.

답변

@Vineeth Mohan 단어 외에도 :

고 가용성 : Elasticsearch는 데이터 복제를 관리 할 수 ​​있도록 분산되므로 클러스터에 여러 개의 데이터 사본이 있습니다. 이것은 고 가용성을 가능하게합니다.

강력한 쿼리 DSL : Elasticsearch는 Lucene 위에서 쿼리를 읽고 쓰는 JSON 인터페이스를 제공합니다. Elasticsearch 덕분에 Lucene 구문을 몰라도 복잡한 쿼리를 작성할 수 있습니다.

Schemaless (스키마 프리) : 필드 (이름, 값 쌍)를 미리 schema정의 할 필요가 없습니다. 데이터를 색인화 할 때 elasticsearch는 마술처럼 런타임에 스키마를 자동으로 작성할 수 있습니다.


답변

사용법 관점에서 대답하겠습니다.

Lucene은 검색 엔진 라이브러리 입니다. 새로운 Elasticsearch 또는 Solr 경쟁 업체 또는 사용 사례에 적합한 좁은 검색 엔진 (예 : 텍스트 분석)을 사용하여 자체 검색 엔진을 구축 할 수 있습니다.

Elasticsearch는 검색 엔진 입니다. 대부분의 사람들은 로그 집계, 제품 검색 또는이 두 가지 변형 (예 : 소셜 미디어 분석 또는 일부 검색 기준과 관련된 사람 찾기)에이 도구를 사용합니다. 그것은 Lucene 위에 지어 졌으므로 대부분의 기능을 노출합니다 . 또한 가장 많이 추가됩니다.

  • REST API
  • DSL 쿼리
  • 분산 시스템 (샤딩, 복제, 클러스터 관리)
  • 패싯 / 집계
  • 일반적인 사용 (예 : 수집 처리) 및 관리 ( 관련 메트릭 모니터링 , 백업 및 복원 등을 위한 API)를 위한 추가 기능

답변