독립형 전체 텍스트 검색 서버 선택 : Sphinx 또는 SOLR? [닫은]


192

다음 속성을 가진 독립형 전체 텍스트 검색 서버를 찾고 있습니다.

  • 여러 클라이언트의 검색 요청을 제공 할 수있는 독립형 서버로 작동해야합니다.
  • SQL 쿼리 결과를 인덱싱하여 "대량 인덱싱"을 수행 할 수 있어야합니다. "SELECT id, text_to_index FROM documents;"
  • 무료 소프트웨어 여야하며 데이터베이스로 MySQL을 사용하여 Linux에서 실행해야합니다.
  • 빠르다 (MySQL의 내부 전체 텍스트 검색을 배제)

내가 찾은 대안은 다음과 같은 속성입니다.

  • Solr (Lucene 기반)
  • ElasticSearch (Lucene 기반)
  • 스핑크스

내 질문 :

  • 그들은 어떻게 비교합니까?
  • 대안을 놓친 적이 있습니까?
  • 각 유스 케이스가 다르지만 특정 패키지를 사용하고 싶지 않은 경우가 있습니까?

1
당신은 직선 루체 사용을 배제 했습니까? Solr은 lucene 위에서 서비스되므로 직선적 인 Lucene이 가능할 수 있습니다.
Dave

Lucene에 독립형 서버 모드가 있습니까? SOLR이 추가 한 것 중 하나라고 생각했습니다. 나는 아무것도 배제하지 않았다-그래서 그것이 요구 사항에 주어진 최선의 선택이라면 Lucene을 옹호하는 것을 자유롭게 느끼십시오 :-)
knorv

mausch : 주로 Java뿐만 아니라 다른 언어도 있습니다.
knorv

개인적으로 나는 스핑크스를 좋아한다. 그러나 최근 "대규모"프로젝트에서 최신 릴리스 후보 (0.9.9-rc2)는 MVA (Multi-Value Array)를 사용할 때 스토퍼 버그를 표시했습니다. 무작위 결과입니다! 그래서 우리는이 문제를 해결하기 위해 SOLR로 옮겼습니다. 일단 SOLR이 시작되고 실행되면 쇼 스토퍼 버그없이 성능이 좋았습니다.
pchap10k

2
elasticsearch.com을 보셨습니까?
FYA

답변:


327

저는 거의 2 년 동안 Solr을 성공적으로 사용해 왔으며 스핑크스를 사용한 적이 없으므로 편견이 있습니다. 그러나 나는 문서 나 다른 사람들을 인용하여 그것을 객관적으로 유지하려고 노력할 것이다. 나는 또한 내 대답에 패치를 취할 것이다 :-)

유사점 :

  • Solr과 Sphinx는 모든 요구 사항을 충족합니다. 빠르고 대량의 데이터를 효율적으로 색인화하고 검색하도록 설계되었습니다.
  • 두 사이트 모두 트래픽이 많은 사이트를 사용하는 긴 목록을 가지고 있습니다 ( Solr , Sphinx )
  • 둘 다 상업적인 지원을 제공합니다. ( 솔러 , 스핑크스 )
  • 둘 다 여러 플랫폼 / 언어에 대한 클라이언트 API 바인딩을 제공합니다 ( Sphinx , Solr )
  • 둘 다 속도와 용량을 증가시키기 위해 분배 될 수 있습니다 ( Shinx , Solr )

몇 가지 차이점이 있습니다.

관련 질문 :


4
- SOLR와 Lucene을 모두 투입 DEVS에 대한 이야기, 그들이 발전 쉽고 빠르게 만드는 두 제품 합병 것 같다 lucidimagination.com/blog/2010/03/26/...을 .
jimmystormig 2013

3
@Stann : 어떻게 그렇게? 나는 거의 5 년 전에 Solr을 사용해 왔으며 한 줄의 Java를 작성할 필요가 없었습니다.
Mauricio Scheffer

@MauricioScheffer Java 코드가 C ++보다 빠를 것이라고 생각합니까? Bill Karwin과 Sphinx의 비교는 lucene보다 10 배 더 빠른 쿼리를 보여줍니다 (그리고 solr은 훨씬 느려 야합니다) slideshare.net/billkarwin/…
Stann

3
@Stann : Solr을 사용하여 몇 개의 웹 사이트를 이름 지정하기 위해 whitehouse.gov, Netflix, The Guardian, digg보다 더 많은 성능이 필요하다고 생각하십니까? wiki.apache.org/solr/PublicServers
Mauricio Scheffer

3
다음은 Solr에 대한이 답변과 좋은 짝을 이룬 Sphinx 에 대한 답변입니다
New Alexandria

48

독자적인 방식으로 검색 기능을 확장해야하는 경우가 아니라면 Sphinx가 최선의 선택입니다.

스핑크스 장점 :

  1. 개발 및 설정이 더 빠릅니다
  2. 훨씬 더 나은 (그리고 더 빠른) 집계. 이것은 우리를위한 킬러 기능이었습니다.
  3. XML이 아닙니다. 이것이 Solr을 궁극적으로 배제한 것입니다. 우리는 Solr 집계가 부족했기 때문에 오히려 큰 결과 세트를 반환하고 (수백 개의 결과를 생각하십시오) 스스로 집계해야했습니다. XML과 직렬화하는 데 걸리는 시간은 성능을 절대적으로 떨어 뜨 렸습니다. 작은 결과 집합의 경우 완벽하게 좋습니다.
  4. 오픈 소스 앱에서 본 최고의 문서

Solser의 장점 :

  1. 확장 할 수 있습니다.
  2. 웹 앱에서 직접 조회 할 수 있습니다. 즉, 자동 완성 같은 검색이 AJAX를 통해 Solr 서버에 직접 도달 할 수 있습니다.

29
Solr에는 JSON, PHP, Ruby, Python 및 Java 이진 형식을 포함하여 XML 이외의 많은 응답 작성자가 있습니다. lucene.apache.org/solr/api/org/apache/solr/request/…
Mauricio Scheffer

24
Solr / Lucene 문서가 얼마나 끔찍한 지 언급 했습니까? 기능을 파악하기 위해 Javadoc을 근절해야하는 것은 문서화의 아이디어가 아닙니다.
larf311 '08 -17-09

3
나는 Wiki에 링크 했어야했다 : wiki.apache.org/solr/…
Mauricio Scheffer

2
나는 하루 종일 내 Mac에서 sphinx 0.9.9의 설치 버그를 수정하여 보냅니다. 지금까지 여전히 작동하지 않습니다. 너무 버기입니다. 나는 제안 된 방법을 매우 사용했습니다. 난 정말 실망 해요 ...
lkahtz

solr의 문서는 스핑크스만큼 좋지 않습니다. 그러나 공동체는 크다. 그리고 나는 solr의 소스 코드를 읽음으로써 항상 모든 것을 알아낼 수 있습니다.
Tyler Long

21

참고 : 같은 질문을 가진 많은 사용자가 있습니다.

따라서 요점에 대답하십시오.

어느 이유?

  • 웹앱 (예제 사이트 검색 엔진)에서 사용하려면 Solr 을 사용하십시오. API 덕분에 분명히 좋을 것입니다. 당신은 확실히 웹앱을위한 힘이 필요합니다.

  • 수많은 문서 / 파일을 빠르게 검색 하려면 Sphinx를 사용하십시오 . 너무 빨리 색인을 생성합니다. 검색 결과를 얻기 위해 JSON 또는 구문 분석 XML이 포함 된 앱에서는 사용하지 않는 것이 좋습니다. 직접 dB 검색에 사용하십시오. MySQL에서 잘 작동합니다.

대안

이들은 거인이지만 훨씬 더 있습니다. 또한 이들을 사용하여 사용자 지정 프레임 워크를 강화하는 것도 있습니다. 그래서, 나는 당신이 정말로 놓친 적이 없다고 말할 것입니다. 좋은 사용자 기반을 가진 하나의 elasticsearch 가 있지만 .


13
1 년 반 후에이 답변을 읽고 공감대를 클릭하고이 답변을 직접 작성한 것을 볼 수있는 어색한 순간. lol. : DA 작은 추가 : 18 개월 후, elasticsearch는 훌륭한 대안으로 밝혀졌으며 괜찮은 커뮤니티도 있습니다. 멋지고 분재 멋지다!
Augiwan

아우구스투스! 그 어색한 순간 : D. 파이썬 웹 응용 프로그램의 경우 지금 최고라고 생각하는 것은 무엇입니까? 성능, 메모리 사용량 및 아이디어를 쉽게 설정할 수있는 솔라 또는 탄력적 검색?
Mevin Babu

웹 앱의 언어는 중요하지 않습니다. 사용 사례에 따라 선택하십시오!
Augiwan

19

나는 거의 1 년 동안 스핑크스를 사용해 왔는데, 그것은 놀랍습니다. MacBook에서 약 1 분만에 150 만 개의 문서를 색인 할 수 있으며 서버에서도 더 빠르게 색인을 생성 할 수 있습니다. 또한 Sphinx를 사용하여 특정 위도 및 경도 내의 장소로 검색을 제한하고 있으며 매우 빠릅니다. 또한 결과 순위를 매기는 방법도 매우 조정 가능합니다. 튜토리얼을 읽어 보면 설치 및 설정이 쉽습니다. 거의 1.0 상태이지만 그들의 릴리스 후보는 확고합니다.


3
지역 검색은 LocalSolr 플러그인으로 Solr에서 수행 할 수 있습니다. gissearch.com/localsolr
Mauricio Scheffer

1
분당 150 만 개의 문서를 INDEX 할 수 있습니까? SSD의 7zip (쓰기, 콘솔로 출력하지 않음) 파일에서 직접 읽는 많은 사람들에게도 읽을 수 없습니다! 그리고 2017 년입니다! 어떤 종류의 문서입니까? 꽤 믿어지지 않습니다. 참고 : 분당 150 만 개의 검색을 의미하지 않았기를 바랍니다 . 150 만 개의 문서가있는 인덱스 검색은 여전히 ​​몇 초 안에 (2009 년에도) 반환됩니다.
FastAl

2

Lucene / Solr은 더 많은 기능을 갖추고 있으며 비즈니스 기간이 길고 사용자 커뮤니티가 훨씬 강력합니다. imho 만약 우리가 아닌 일부 사람들이 직면 한 것처럼 초기 설정 문제를 해결할 수 있다면 Lucene / Solr이 최선의 방법이라고 말할 것입니다.


사용자 커뮤니티는 중요한 포인트입니다. 스핑크스 포럼에는 매우 도움이되는 사람들이 몇 명 있지만, 그렇지 않으면 강력한 커뮤니티가 없습니다.
mlissner
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.