2016-06-03 2 views
0

schema.xml에 필드 URL이 있습니다. 이 필드를 기반으로 검색 결과를 구분해야합니다. 예를 들어Solr : URL 부분 제외

  • 검색 한 사실 www.example.com/part1/이 접두사가 모든 결과의 결과를 원한다.
  • 다른 검색 결과 나는 www.example.com의 결과를 원하지만 그 중에는 /part1/이 포함 된 모든 문서가 없습니다.

어떻게하면됩니까? fq는 특수 문자를 허용하지 않으며 NGramFilterFactory를 사용하여 내용을 분할하지 않으므로이 동작은 검색시에만 수행해야합니다.

답변

1

PathHierarchyTokenizerFactory는 필요한 것을 처리해야한다고 생각합니다. 그것은 경로 유형 문자열을 여러 개의 토큰으로 분할하여 루트 전달에서 빌드합니다. 자세한 내용은 https://cwiki.apache.org/confluence/display/solr/Tokenizers#Tokenizers-PathHierarchyTokenizer을 참조하십시오.

그런 다음 해당 필드에서 인덱스 및 쿼리 분석에 Path Hierarchy Tokenizer를 사용하고 있다고 가정하면 q=path:www.example.com -path:*/part1과 같은 쿼리를 수행 할 수 있습니다.

+0

또한 [Javadoc for the Tokenizer] (http://www.solr-start.com/javadoc/solr-lucene/org/apache/lucene/analysis/path/PathHierarchyTokenizerFactory.html)에는 사용시기를 보여주는 약간의 뉘앙스가 있습니다. 색인 전용 또는 검색 전용으로 사용할 수 있습니다. –

+0

친절하고 도움을 주셔서 감사합니다. 매우 promissing 소리 :) – middleendian