Когда я ищу компанию в solr, результат должен содержать похожие результаты, такие как компания, компания-любая и компания. Как получить это с помощью solr.
Как улучшить поиск по близости в solr
- что ты уже пробовал? 13.10.2017
- Каковы именно правила того, что вы считаете похожим результатом? 13.10.2017
- Если я ищу Walmart, результат должен отображать wal mart, wal-mart и walmart и наоборот. Как этого добиться 16.10.2017
Ответы:
Для предоставленного вами варианта использования вы можете использовать n-граммы.
<analyzer>
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.NGramFilterFactory" minGramSize="3" maxGramSize="7"/>
</analyzer>
Этот фильтр разбивает токены на части заданных размеров, например, для слова "компания" выдаст следующие токены: "com", "omp", "mpa", "pan", "any", "comp" , "ompa", "mpan", "pany", "compa", "ompan", "mpany", "compan", "company", "company"
ВНИМАНИЕ Этот фильтр может снизить производительность и привести к экспоненциальному росту вашего индекса и, возможно, приведет к нехватке памяти Solr в зависимости от размера полей, которые вы используете (например, если вы используете его для извлечения контента). . Так что выбирайте с умом поле для его использования :)
Вот некоторая полезная информация с примерами: https://lucene.apache.org/solr/guide/6_6/filter-descriptions.html#FilterDescriptions-N-GramFilter