如何在SOLR中处理搜索词连接

时间:2010-03-18 11:12:50

标签: lucene solr

我们正在将我们的产品搜索从mysql替换为SOLR后端。我们的客户经常搜索“startrek online”,“starwars”,“redsteel”甚至“grandtheftauto”等词汇。 SOLR中是否有一种方法可以将这些搜索扩展或拼写为音节,例如“星际跋涉”,“星球大战”,“红钢”,“侠盗猎车手”?

2 个答案:

答案 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/