네덜란드어와 독일어에는 과 결합 할 수있는 단어가 있습니다. words; 복합 단어.Solr 복합어 워드 토크 나이저 - 결과가 OR 문으로 처리됩니다.
예를 들어 "accountmanager"는 "account"및 "manager"라는 단어로 합성 된 한 단어로 간주됩니다. 우리 사용자는 문서 및 쿼리에서 "accountmanager"및 "account manager"를 사용하고 두 쿼리에 대해 동일한 결과를 기대합니다.
이<filter class="solr.DictionaryCompoundWordTokenFilterFactory" dictionary="../../compound-word-dictionary.txt" minWordSize="8" minSubwordSize="4" maxSubwordSize="15" onlyLongestMatch="true"/>
화합물 단어-하는 dictionary.txt 파일이 단어의 목록을 원하는 분야 이 (분할) 단어를 decompound에
이 수 있으려면, SOLR 내가 스키마에 설정 한 사전 필터가 복합 단어를 분해하는 데 사용됩니다. 이 목록에서 "account"와 "manager"라는 단어를 찾을 수 있습니다.decompound 결과는 괜찮습니다, 쿼리 "같은 관리자"로 검색 할 때 SOLR 디버거에서 분석 할 때 : (용어 텍스트) :
- 같은 관리자
- 계정
- 관리자
그러나이 결과는 OR 문으로 처리되고 적어도 하나의 용어가있는 모든 문서를 찾습니다. 나는 그것이 AND 문처럼 행동하기를 원한다. (그래서 나는 문서에서 "account"와 "manager"라는 용어를 모두 가지고있는 결과만을 원한다).
스키마의 defaultOperator를 "AND"로 설정하려고 시도했지만 edismax을 사용할 때 무시됩니다. 그래서 제안 된 최소 일치을 원하는 결과없이 다시 100 % (mm = 100 %)로 설정했습니다. 스키마에서 사전 필터의 속성을 조정해도 비헤이비어가 "AND"로 변경되지 않습니다.
사전 복합 단어 토큰 팩토리를 사용할 때 누구도이 문제를 보았으며 AND 문과 같이 작동하도록하는 솔루션을 알고 있습니까?
설명해 주셔서 감사합니다. DictionaryCompoundWordTokenFilterFactory의 동작에 대한 명확한 대답. 나는 그 사용법을 오해하여이 경우에 나의 필요를 충족시키지 못한다는 것을 알았습니다. 제안한 힌트가 실제로 다음 단계 (solr.SynonymFilterFactory 사용)입니다. 복잡한 단어 필터 팩토리와 함께 동의어 필터를 단순화하기를 바랬습니다. –