У меня есть SynonymFilterFactory с использованием файла синонимов.Из документации Solr:
#Explicit mappings match any token sequence on the LHS of "=>"
#and replace with all alternatives on the RHS. These types of mappings
#ignore the expand parameter in the schema.
#Examples:
i-pod, i pod => ipod,
sea biscuit, sea biscit => seabiscuit
Однако при запросе sea biscuit
я получаю результаты, связанные с sea
, biscuit
и seabiscuit
.
Это как будто у меня была следующая конфигурация (с expand="true"
):
sea biscuit, sea biscit, seabiscuit
Я не понимаю этого поведения, потому что в инструменте анализа Solr при запросе sea biscuit
этозаменен только на seabiscuit
.
Другими словами: явное отображение синонимов с =>
не работает .
Редактировать: конфигурация поля
Tokenized: true
Имя класса: org.apache.solr.schema.TextField
Index Анализатор: org.apache.solr.analysis.TokenizerChain
- TokenizerКласс:
org.apache.solr.analysis.WhitespaceTokenizerFactory
Фильтры:
org.apache.solr.analysis.StopFilterFactory args:{enablePositionIncrements: true words: stopwords.txt ignoreCase: true }
org.apache.solr.analysis.WordDelimiterFilterFactory args:{preserveOriginal: 1 catenateWords: 1 catenateNumbers: 1 splitOnCaseChange: 1 catenateAll: 0 generateNumberParts: 1 generateWordParts: 1 }
org.apache.solr.analysis.LowerCaseFilterFactory args:{}
org.apache.solr.analysis.SnowballPorterFilterFactory args:{protected: protwords.txt }
org.apache.solr.analysis.LengthFilterFactory args:{min: 2 max: 500 }
org.apache.solr.analysis.RemoveDuplicatesTokenFilterFactory args:{}
org.apache.solr.analysis.ASCIIFoldingFilterFactory args:{}
Запрос Анализатор: org.apache.solr.analysis.TokenizerChain
- Класс Tokenizer:
org.apache.solr.analysis.WhitespaceTokenizerFactory
Фильтры:
org.apache.solr.analysis.LowerCaseFilterFactory args:{}
org.apache.solr.analysis.SynonymFilterFactory args:{expand: true ignoreCase: true synonyms: synonyms.txt }
org.apache.solr.analysis.StopFilterFactory args:{words: stopwords.txt ignoreCase: true }
org.apache.solr.analysis.WordDelimiterFilterFactory args:{preserveOriginal: 1 catenateWords: 0 catenateNumbers: 0 splitOnCaseChange: 1 catenateAll: 0 generateNumberParts: 1 generateWordParts: 1 }
org.apache.solr.analysis.SnowballPorterFilterFactory args:{protected: protwords.txt }
org.apache.solr.analysis.LengthFilterFactory args:{min: 2 max: 500 }
org.apache.solr.analysis.RemoveDuplicatesTokenFilterFactory args:{}
org.apache.solr.analysis.ASCIIFoldingFilterFactory args:{}