1

我一直在尝试为我们的 Solr 4.1 支持的搜索启用模糊搜索,但我只能在网上找到:

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

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

因此,如果有人知道它应该如何工作或什至支持它,任何指针将不胜感激。

4

1 回答 1

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”是您可以选择的自定义值。这个值决定了你的搜索有多“模糊”。当该值接近零时,结果将“更加模糊”,反之亦然。

于 2013-10-09T23:50:01.200 回答