solr과 lucene의 차이점


163

Lucene과 Solr이 서로 다른 두 가지 Apache 프로젝트 인 것을 알고 있지만 각 프로젝트의 목적이 무엇인지 이해하지 못합니다.

내가 지금까지 이해 한 것은 Lucene이 검색 색인을 작성하는 데 사용되고 Solr이이 색인을 사용하여 검색을 수행한다는 것입니다. 내가 맞습니까? 아니면 완전히 다른 접근법입니까?


5
하지 않습니다 lucene.apache.org/solr (와 Lucene에 대한 해당 페이지) 답인가?
NPE

그래, 맞아, solr 기능 페이지는 차이점을 명확하게합니다. Si 내가 Lucene을 단독으로 사용할 수 있다고 이해한다면 Solr이 작동하려면 Lucene이 필요하다.
darkheir

2
Lucene과 달리 Solr은 Jetty, Tomcat, Resin 등과 같은 모든 서블릿 컨테이너에 배포 할 수있는 웹 응용 프로그램 (WAR)입니다. Solr은 프로그래머가 아닌 사용자가 설치하여 사용할 수 있습니다. 루센은 할 수 없습니다. lucenetutorial.com/lucene-vs-solr.html
Lucky

답변:


229

@ darkheir : Lucene과 Solr은 서로 다른 두 가지 Apache 프로젝트로 함께 작동하므로 각 프로젝트의 목표가 무엇인지 이해하지 못합니다.

1) Solr는 후드 아래에서 Lucene을 사용합니다. Lucene은 Solr API에 대한 실마리가 없습니다.

2) Lucene은 응용 프로그램에 검색 기능을 추가 할 수있는 강력한 검색 엔진 프레임 워크입니다. 모든 검색 관련 복잡한 작업을 숨기면서 사용하기 쉬운 API를 제공합니다. Solr뿐만 아니라 모든 응용 프로그램에서이 라이브러리를 사용할 수 있습니다.

3) Solr은 Lucene 주위에 내장되어 있습니다. 그것은 Lucene 주변의 http-wrapper 일뿐 만 아니라 Lucene 에 더 많은 무기를 추가하는 것으로 알려져 있습니다 . Solr는 즉시 사용 가능한 상태입니다. Lucene이 제공하는 것 외에도 관련 인프라와 더 많은 기능을 제공하는 웹 응용 프로그램입니다.

@darkheir : Lucene은 검색 색인을 작성하는 데 사용되고 Solr은이 색인을 사용하여 검색을 수행합니다. 내가 맞습니까? 아니면 완전히 다른 접근법입니까?

4) Lucene은 Solr의 소비에 대한 지수를 만들지 않습니다 . Lucene은 모든 검색 관련 작업을 처리합니다. 모든 응용 프로그램은 Lucene 프레임 워크를 사용할 수 있습니다.

Solr, Elastic Search, LinkedIn (예, 후드 아래) 등이 그 예입니다.

이 기사를 확인하십시오 : Lucene vs Solr

업데이트 (6/18/14)

Lucene을 언제 사용해야합니까?

  • 당신은 검색 엔지니어이며
  • 당신은 프로그래머이고
  • Lucene AND의 거의 모든 내부를 완벽하게 제어하고 싶습니다.
  • 요구 사항에 따라 Lucene AND에 대한 모든 종류의 괴짜 사용자 정의를 수행해야합니다.
  • 확장, 배포 등과 같은 검색의 인프라 요소를 기꺼이 처리합니다.

Solr를 언제 사용해야합니까?

  • 위의 내용 중 하나 이상이 이해가되지 않았습니다. 또는
  • 즉시 사용 가능한 (Java에 대한 지식이없는 경우에도) 사용할 수있는 것을 원하거나
  • 인프라 요구 사항이 검색 사용자 지정 요구 사항보다 중요합니다.

참고 : Solr을 사용자 정의하기 어렵다는 의미는 아닙니다. Solr은 매우 유연하고 플러그 가능한 많은 API 포인트를 제공하므로 코드를 입력 할 수 있습니다.

' Lucene을 사용해야합니다 '캠프에 빠진 사람들이 있지만 여전히 사용하기 쉬우므로 Solr를 일반 Lucene보다 선호합니다. 그러나 Solr 사용자 정의를 최대한으로 제한하지는 않습니다.

BTW, Solene (4.x)에 Lucene (4.x)보다 더 많은 리소스가 있음을 알았습니다.


31

Lucene은 인덱싱, 분석, 검색 등을 구현하는 저수준 Java 라이브러리 (.NET 등의 포트 포함)입니다.

Solr은 Lucene을 사용하는 독립 실행 형 사전 구성 제품 / webapp입니다. Java API 대신 HTTP API를 선호하는 경우 Solr이 적합합니다. Solr에는 추가 기능 (예 : 그룹화 )도 있습니다.


21

Solr과 Lucene의 관계를 개념화하는 간단한 방법은 자동차와 엔진의 관계입니다. 엔진은 운전할 수 없지만 자동차는 운전할 수 있습니다. 마찬가지로 Lucene은 그대로 사용할 수없는 프로그래밍 방식 라이브러리이며 Solr은 기본적으로 사용할 수있는 완전한 응용 프로그램입니다.

출처 : Lucene-vs-solr-Lucene 튜토리얼


5
lucenetutorial.com/lucene-vs-solr.html 에서 복사하여 붙여 넣기 소스를 인용하여 붙여 넣기 답변을 복사 할 때마다 소스를 언급하십시오. ;)
Lucky

1
페이지가 오프라인 상태 인 것 같습니다.
dev_feed

15

Solr은 검색 플랫폼을 제공하기 위해 lucene 위에 구축되었습니다.

아래에서 위로 다음 레이어의 검색 플랫폼 :

  • 데이터
    • 목적 : 다양한 데이터 유형 및 소스를 나타냅니다.
  • 문서 작성
    • 목적 : 색인 작성을위한 문서 정보 빌드
  • 인덱싱 및 검색
    • 목적 : 문서 색인 작성 및 조회
  • 논리 향상
    • 목적 : 검색 쿼리 및 결과 처리를위한 추가 논리
  • 검색 플랫폼 서비스
    • 목적 : 서비스 플랫폼을 제공하기 위해 검색 엔진 코어의 추가 기능을 추가하십시오.
  • UI 애플리케이션
    • 목적 : 최종 사용자 검색 인터페이스 또는 응용 프로그램

솔라 스택

참조 기사 : 기업 검색


12

SOLR은 Lucene 인덱스에 대한 래퍼 입니다.

SOLR은 자동차 이고 Lucene은 엔진 입니다. 자동차를 운전하는 방법 (SOLR)을 알아야하며 자동차 엔진에 문제가있는 경우 엔진 (Lucene)에 대해 알아야합니다.

안전한 운전 되십시오 :)


3
말할 것도없이 Lucene 엔진을 사용하여 나만의 자동차를 만들 수도 있습니다.
힌트

1

Apache Lucene은 Apache Solr에서 내부적으로 사용하는 라이브러리입니다. Java로 작성되었으며 놀라운 전체 텍스트 검색 및 색인 기능을 제공합니다. 전 세계의 많은 언어를 분석하고 효율적이고 빠른 검색 및 분석을 위해 해당 언어로 텍스트를 준비 할 수 있습니다. Lucene은 라이브러리입니다. 응용 프로그램에서 직접 사용하여 모든 것을 직접 구현할 수 있지만 Apache Solr는 즉시 사용할 수있는 많은 기능을 제공합니다.

Apache Solr 검색 엔진은 데이터를 전송하고 나중에 해당 데이터를 검색하는 데 사용할 수있는 HTTP API와 같은 기능을 제공합니다. API를 사용하여 검색 엔진을 제어하고 분산 환경을 생성하며 여러 노드에 데이터를 자동으로 분산시킬 수 있습니다.


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.