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

Lucene 如何在SOLR中处理搜索词连接,lucene,solr,Lucene,Solr,我们目前正在将产品搜索从mysql替换为SOLR后端。我们的客户经常搜索诸如“星际旅行在线”、“星球大战”、“红钢”甚至“格兰德夫陶托”之类的术语。SOLR中是否有方法将这些搜索扩展或拼写检查为音节,例如“星际迷航在线”、“星球大战”、“红钢”、“侠盗猎车手”?您可以使用同义词文件。查看(solr.SynonymFilterFactory): 对于searchquery,拆分WordDelimiterFilterFactory可以部分满足您的需要,但synomymfilter可能更简单更好(

我们目前正在将产品搜索从mysql替换为SOLR后端。我们的客户经常搜索诸如“星际旅行在线”、“星球大战”、“红钢”甚至“格兰德夫陶托”之类的术语。SOLR中是否有方法将这些搜索扩展或拼写检查为音节,例如“星际迷航在线”、“星球大战”、“红钢”、“侠盗猎车手”?

您可以使用同义词文件。查看(solr.SynonymFilterFactory):



对于searchquery,拆分WordDelimiterFilterFactory可以部分满足您的需要,但synomymfilter可能更简单更好(+可能更快)。

您可以尝试使用Levenshtein修改搜索词,但也可以使用SoundEx/变音来改进匹配


您可以通过conf-dirI中的spellcheck.txt文件进行拼写检查,dirI希望找到比同义词文件更为通用的解决方案。但是我会试试这封信。你可以试着在邮件列表上问这个问题。也许这个场景中有一些黑客或补丁。
<fieldtype name="syn" class="solr.TextField">
  <analyzer>
      <tokenizer class="solr.WhitespaceTokenizerFactory"/>
      <filter class="solr.SynonymFilterFactory" synonyms="syn.txt" ignoreCase="true" expand="false"/>
  </analyzer>
</fieldtype>