Solr 4中模糊搜索的语法

时间:2013-02-06 14:11:33

标签: search drupal solr syntax fuzzy-search

我一直在努力为我们的Solr 4.1强力搜索启用模糊搜索,但我在网上找到的只有:

1-如何在默认的lucene查询语法中执行此操作,这在我的情况下没有帮助,
2- dismax不支持它和
3- edismax将会或应该支持它

但是,我找不到任何关于如何在edismax查询格式中使用它的文档,甚至在查询语法的默认edsimax页面上也没有,它使用operator~来定义slop因子。我确实尝试在qf参数中根据某些在线链接指定它,但这不起作用,我也假设Solr 4.1默认使用edismax。

因此,如果有人知道它应该如何工作或者它是否支持,那么任何指针都会非常感激。

1 个答案:

答案 0 :(得分:0)

这对我有用。

尝试在schema.xml中添加此fieldType。

这种情况不敏感,对于西班牙语来说,但改变它也适合你。

<fieldType name="text_es_fuzzy" class="solr.TextField" positionIncrementGap="100">
  <analyzer>
    <tokenizer class="solr.StandardTokenizerFactory"/>
    <filter class="solr.LowerCaseFilterFactory"/>
    <filter class="solr.StopFilterFactory" ignoreCase="true" words="lang/stopwords_es.txt" format="snowball" enablePositionIncrements="true"/>
  </analyzer>
</fieldType>

在此之后,当您执行查询时,只需在搜索字符串的末尾添加“~0.5”。 “0.5”是您可以选择的自定义值。此值确定您的搜索“模糊”程度。当值接近于零时,结果将“更模糊”,反之亦然。