2014-02-13 2 views
1

Rails 4 앱에 적합한 색인 생성/검색 솔루션을 선택하려고합니다. 지금까지 나는 Sunspot (Solr)과 Thinking Sphinx (Sphinx)를 고려해 보았지만 두 문서 모두를 읽었을 때 그들이 사용 사례를 만족시킬 수 있는지 확신하지 못했습니다.중첩 된 그룹/패싯에 대한 검색 엔진

단순함을 위해 내 모델에 "양"과 "무리"가 있다고 가정 해 봅니다. 모든 양들은 정확히 한 무리에 속합니다.

무리에 대한 기준을 지정할 수있는 쿼리 인터페이스를 내 사용자에게 제공하고 싶습니다. 검색 결과는 무리별로 그룹화됩니다. 기준의 일부는 패싯으로 사용되어 패싯의 특정 값을 지정할 때 얼마나 많은 양/목을 찾을 수 있는지를 사용자에게 알려줍니다.

쿼리 인터페이스

Sheep criterions 
    Name: _____________ 
    Color 
     [ ] Black (14) 
     [X] White (36) 

    Age: Between [ ] and [ ] 

Herd criterions 
    Description contains: _____________ 
    Country 
     [ ] Australia (12) 
     [ ] Germany (10) 
     [ ] Sealand (1) 

+ Herd 37 (Australia) with 12 matching sheep (15 total) 
+ Herd 10 (Germany) with 20 matching sheep (27 total) 
- Herd 42 (Sealand) with 1 matching sheep (1 total) 
    Sad lonely white sheep 
+ Herd 11 (Germany) with 3 matching sheep (7 total) 

그래서 나는 무리에 의해, 양에 그들을 그룹을 각면 검색을 수행 한 후 결과에 대한 또 다른 측면 검색을 수행하고자 발생합니다. 이것은 Solr, Sphinx 또는 레일과 결합 할 수있는 또 다른 검색 엔진에서 가능합니까?

나는 목장 속성을 양에 복제하는 것을 고려했다. 적어도 색인을 위해서는 그렇다. 그러나 이것은 엔모테우스 오버 헤드를 유발할 것으로 보인다.

답변

2

예, Solr에서 수행 할 수 있습니다. 양에 herd 속성을 추가하는 것이 가장 좋은 방법 일 수 있으므로 단일 쿼리에서이를 수행 할 수 있습니다. 어쨌든 Solr에 데이터를 가져 오는 오버 헤드가 있으므로 모든 것을 단일 인덱스에 넣을 수 있습니다. 나는 훨씬 더 복잡한 문제에 대해 Solr faceting을 사용했다.

스핑크스도 사용하지는 않았지만 정확하게 작동하는지는 알 수 없지만 문서에서 볼 때 Solr에게는 큰 차이가없는 것 같습니다.

다른 옵션은 ElasticSearch입니다. Solr은 Apache Lucene 엔진을 기반으로합니다. 내가 Solr Elastic을 결정했을 때 완전히 기능이 없었지만 지금까지 그들은 따라 잡았고 블로그에서 그것에 관해 아주 좋은 것을 읽었습니다. 실제로 프로젝트 전환을 고려 중입니다.

패싯과 유사한 몇 가지 NoSQL 솔루션이 있습니다. 그들은 전체 텍스트 검색 엔진의 다른 기능이 부족할지 모르지만.

+1

Thorsten이 맞습니다. Solr/Sunspot과 Sphinx/Thinking Sphinx 모두 당신이하고 싶은 일은 분명히 가능할 것입니다. ElasticSearch 역시 그렇게 쉽습니다. 외형을 좋아하는 도서관을 골라 골라보십시오. – pat