我们正在将我们的产品搜索从mysql替换为SOLR后端。我们的客户经常搜索“startrek online”,“starwars”,“redsteel”甚至“grandtheftauto”等词汇。 SOLR中是否有一种方法可以将这些搜索扩展或拼写为音节,例如“星际跋涉”,“星球大战”,“红钢”,“侠盗猎车手”?
答案 0 :(得分:2)
您可以使用同义词文件。看看this documenation site(solr.SynonymFilterFactory):
<fieldtype name="syn" class="solr.TextField">
<analyzer>
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.SynonymFilterFactory" synonyms="syn.txt" ignoreCase="true" expand="false"/>
</analyzer>
</fieldtype>
对于searchquery拆分,WordDelimiterFilterFactory可以部分匹配您的需求,但也许synomymfilter更容易和更好(+可能更快)。
答案 1 :(得分:0)
您可以尝试使用Levenshtein修改搜索字词,但也可以使用SoundEx / Metaphone来改善匹配。
http://web.elctech.com/2008/04/13/advanced-solr-filters-with-phonetics/
http://web.elctech.com/2009/07/06/solr-vs-sphinx-fuzzy-search/