2010-01-29 3 views
2

내 SOLR 색인을 두 개로 분할해야합니다. 그것이 나왔다면 이미 필요한 분할 정보를 나타내는 STRING 필드가 있습니다. 즉, 검색 될 레코드의 한 종류는 레코드에 문자열 필드가 있고 값이 들어있는 위치이며, 다른 종류는 값이없는 곳입니다. 모든 쿼리는 검색 할 파티션을 지정해야합니다. 이제는 -strFld:[* TO *]과 같은 음수 필드 쿼리를 사용하여 해당 필드를 검색하는 것이 더 빠르지 않습니까? 아니면 새로운 부울 필드를 만들거나 더 나은/더 빨리 나를 "hasStrFld"라고 말하고 검색 할 수 있습니까? 따라서 strFld가 없으면 hasStrFld는 false입니다. 마찬가지로 StrFld에 데이터가 있으면 hasStrFld가 true입니다.SOLR 스키마 디자인 질문 : 필드 없음 또는 부울 필드?

기타 고려 사항 : 나중에 인덱스를 세 번째 파티션으로 분할하여 부울 값이 부적절하고 부정적 쿼리를 적합하지 않게 만들고 열거 형 값이있는 필드를 고려할 가능성이 매우 낮습니다. 그러나 가능성은 매우 낮고 빠른 성능은 오늘날의 확장 성보다 훨씬 큰 고려 사항입니다.

답변

3

실제로 테스트에서는 일부 테스트를 실행하는 것이 좋지만 결정하지 않으면 STRING 필드를 사용하는 것이 좋습니다.

  • 은 이미
  • 특별한 부울 필드 같은 것은이 없습니다입니다 (SOLR이 토큰까지 내가 이해 문자열을 사용하여 추가).

속도를 위해 나는 시도 할 것이다 :

  • 관련 캐싱 메커니즘
  • 부스트/필드 점수 unboost 및 종류 (대신 분할을 사용하도록 (즉, FQ) 필터로 사용 완전히)
  • 멀티 코어 방식, 코어의 파티션 (실제로는 쉽게 확장이 도움

희망) 유지 관리가 용이 ​​할 수있다 에스.