2012-04-03 3 views
0

Lucene 검색 솔루션을 함께 사용하려고하는데 시작하는 방법을 파악하는 데 어려움이 있습니다.여러 인덱스에서 ID를 기준으로 분할 영역 Lucene 인덱스

  • 내 사이트에서 내 모델에서 5 가지 유형의 개체를 한 번 검색하면됩니다.
  • 내 결과가 하나의 목록으로 되돌아 와서 가장 먼저 일치하는 순서대로 정렬되어 데이터를 적절히 표시 할 수 있도록 형식을 구분할 수 있습니다.
  • Google 시스템은 사이트라고하는 사이트로 나뉩니다. 사이트별로 5 가지 다른 모델 객체를 색인하려고합니다. 검색은 항상 사이트별로 수행됩니다.

최적의 성능을 위해이 시스템의 색인을 생성 할 위치를 잘 모르겠습니다. 또한이 설정에 대한 검색을 구현하는 것이 최선인지 잘 모르겠습니다. 모든 조언, 교훈 및 예를 들어 주시면 감사하겠습니다.

편집 :이 너무 광범위 말했다 되었기 때문에

,

3.

이의 내가 색인하고 말을하자 내가 3 개 사이트 사이트 1 사이트 2, 사이트가 있다고 가정 해 봅시다 개, 고양이, 햄스터. 이러한 각 유형의 레코드는 사이트에 링크됩니다.

그래서, 예를 들어, 내 데이터가있을 수 있습니다 (유형, 이름, SiteId)

Dog, "Fido" 1 
Cat, "Sprinkles", 2 
Hamster, "Sprinkles", 2 
Cat, "Mr. Pretty", 3 
Cat, "Mr. Pretty 2", 3 

나는에 대한 검색을 할 때, "씨 예쁜"나는 특정 사이트 ID를 대상으로합니다. 사이트 ID 1을 위반하면 0 개의 결과가 표시됩니다. 내가 사이트 ID 3에 대해 검색 할 경우에, 나는

Mr. Pretty 
Mr. Pretty 2 

를 얻을 수 있습니다 그리고 내가 사이트 2의 "뿌리"를 검색하면, 나는 하나 개의 결과가 고양이이고 다른 결과가 햄스터는 것을 알 수 있습니다.

이런 종류의 검색 색인을 달성 할 수있는 가장 좋은 방법은 무엇입니까?

+0

여기는 대답이 너무 광범위합니다. Solr 또는 SolrCloud 또는 ElasticSearch 또는 Sensei를 살펴볼 수 있습니다. – bmargulies

+0

괜찮 았지만 사용할 수는 없습니다. Lucene.net 만 사용하기를 원합니다. – Josh

+1

단순히 각 문서에 SiteID 필드를 추가하고 항상 해당 부분을 쿼리로 작성하지 않겠습니까? – goalie7960

답변

2

골키퍼 7960이 제안했듯이이 사이트에서만 문서를 검색하기 위해 각 문서에 "SiteID"를 추가하고 검색어에 siteid:3과 같은 검색어를 추가 할 수 있습니다. 또한 서로 다른 사이트에 대해 Filter을 작성하여 저장함으로써이 성능을 향상시킬 수 있으므로 해당 쿼리에 적용 할 수 있습니다.

동일한 색인의 다른 유형에 대해서는 동일한 전략을 사용할 수 있습니다. 해당 유형 (아마도 ID)을 사용하여 각 문서에 대한 "유형"필드를 만듭니다. Elasticsearch은 동일한 전략에서 동일한 색인에서 다른 구별 유형을 사용합니다. 다시 말하지만, 유형에 대한 필터를 사용하여 쿼리 속도를 높일 수 있습니다 (Elasticsearch도 동일 함).

관련 문제