programing

검색 엔진 - Lucene 또는 Solr

elecom 2023. 8. 6. 09:50
반응형

검색 엔진 - Lucene 또는 Solr

제품 카탈로그 관리 소프트웨어에 검색 엔진을 통합해야 합니다.카탈로그에는 관계형 데이터가 여러 테이블에 분산된 4-5백만 개 이상의 레코드가 있을 것으로 예상됩니다.우리의 개발 플랫폼은 Asp입니다.넷 3.5 그리고 우리는 루씬에 대한 예비 작업을 수행했고, 그것이 좋다는 것을 발견했습니다.그러나 Solr에 대해 알게 된 지 얼마 되지 않아 구현, 타임라인, 정기적인 유지보수, 성능, 기능 측면에서 Lucene과 Solr을 비교할 수 있는 몇 가지 실질적인 팁을 찾고 있었습니다.어떤 지침이나 조언도 정말 도움이 될 것입니다.감사해요.

루씬:

Apache Lucene은 전체가 Java로 작성된 고성능의 전체 기능 텍스트 검색 엔진 라이브러리입니다.전체 텍스트 검색이 필요한 거의 모든 애플리케이션에 적합한 기술입니다.

솔러:

Solr은 XML/HTTP 및 JSON API, 히트 하이라이팅, 패싯 검색, 캐싱, 복제, 웹 관리 인터페이스 및...를 지원하는 Lucene Java 검색 라이브러리 기반의 오픈 소스 엔터프라이즈 검색 서버입니다.

본질적으로 Lucene은 Solr에 내장되어 있으며 프로젝트에 내장되어 전체 텍스트 검색 기능을 제공하기 위한 목적으로 순수하게 전체 텍스트 검색 라이브러리입니다.Solr은 사용자 지정 코드를 작성할 필요 없이 구조화된 데이터를 검색하고, CSV 파일에서 데이터를 로드하고, 사용자 입력에 대한 허용된 구문 분석을 수행하고, 패싯 검색을 수행하고, 결과에서 일치하는 텍스트를 강조 표시하고, 다양한 형식(XML, JSON 등)으로 검색 결과를 검색할 수 있도록 훨씬 더 많은 기능과 관리 기능을 제공합니다.Solr 기능 페이지를 확인하고 프로젝트와 관련된 기능이 있는지 확인합니다.

나는 앤드류 클레그의 말에 동의해야 합니다.많은 Java Developer 유형이 Lucene vs Solr을 볼 때 Lucene은 다른 라이브러리와 마찬가지로 단순한 라이브러리(POJ: Plain Old Java Jar!)이고 임베드하기 쉬워 보이는 반면, 복잡한 HTTP를 통해 통신하는 별도의 프로세스인 Standing Solr의 복잡성에 비해 더 친근하게 보입니다.

그러나 거의 모든 검색 사용 사례에 대해서는 Solr이 올바른 접근 방식이라고 생각합니다.검색의 대부분의 복잡성은 직접적인 초기 통합이 아니라 검색을 조정하고 수요에 맞게 확장하며 개발자 중심 세계에서 시스템 세계로 넘어가는 인덱스를 유지하는 모호한 영역이기 때문입니다.그리고 솔은 그 모든 요구를 잘 처리합니다.

dcruz가 말했듯이, Solr은 어쨌든 Lucene을 사용하기 때문에, 그것은 타당한 비교가 아닙니다.

Lucene은 검색 앱을 구축하기 위한 툴킷이고, Solr은 Lucene과 함께 구축된 검색 앱입니다.

IMO Solr을 사용하지 않으면 RDBMS 또는 XML 저장소에서 데이터를 빨아들이는 구성 가능한 데이터 가져오기 핸들러와 같이 직접 작성해야 하는 많은 '플럼핑'을 제공하기 때문에 Solr을 사용하지 않는 것은 미친 입니다.

또한 웹 관리 인터페이스와 기타 다양한 기능을 제공합니다.

한 가지 고려해야 할 점은 이 두 환경(Java/)을 혼합할 때 애플리케이션을 설정하는 것이 얼마나 어려울지입니다.NET). Lucene을 사용하는 경우.NET 라이브러리는 배포를 간소화하는 필요한 외부 종속성 설치를 제한할 수 있습니다.

또 한 가지 고려해야 할 것은 솔이 제공하는 추가 서비스가 필요하다는 것입니다.(다른) 웹 관리 인터페이스는 아마도 훌륭할 것이지만 위험 범위를 확장합니다.Java 및 다른 서비스를 구축하면 더 많은 패치 관리가 가능합니다.만약 당신이 계속한다면.NET 패치 전략만 표준 윈도우즈 업데이트 모델이 될 수 있습니다.

물론 Lucene을 사용하여 구현을 롤링합니다.NET은 자체 개발 및 유지보수 비용이 들 것이지만, 제 경험에 따르면 직접적이고 쉽게 작업할 수 있습니다.

우리는 당신과 정확히 같은 상황에 있습니다.안타깝게도 저는 평가 과정에 직접 참여하지는 않았지만, 마지막에는 Lucene과 통합된 Solr을 사용할 예정입니다.

주요 장점은 dcruz가 설명한 것과 같은 다양한 형식입니다.따라서 Solr-Consumer에 문의하여 웹 페이지에서 쉽게 구문 분석하고 표시할 수 있는 XML 데이터로 검색 결과를 얻을 수 있습니다.

잠시 초점을 전환하겠습니다. 귀사 제품의 아키텍처 변화에 대비할 준비가 되셨습니까?Lucene과 Solr은 모두 Java에서 구현됩니다.따라서 호스팅을 위한 또 다른 웹 컨테이너를 실행하게 될 것입니다(따라서 플랫폼의 순수성을 잃게 됩니다).루씬이 에 포팅된 동안.NET(루센.NET project), Solr은 제가 아는 한 멀리 있지 않았습니다.SQL Server(플랫폼을 고려할 때)를 사용하는 경우 SQL Server 전체 텍스트 검색을 대신 고려할 수 있습니다. 이 검색은 거의 동일한 기능(루씬/Solr처럼 기능이 풍부하지는 않지만)을 가지고 있으며 대개(대부분의 경우) 기존 애플리케이션에 훨씬 쉽게 통합할 수 있습니다.뿐만 아니라 단순화된 유지보수(데이터베이스와 함께 제공됨)와 단일 플랫폼 내에 유지되는 이점도 누릴 수 있습니다.

언급URL : https://stackoverflow.com/questions/1400892/search-engine-lucene-or-solr

반응형