我一直在努力为我们的Solr 4.1强力搜索启用模糊搜索,但我在网上找到的只有:
1-如何在默认的lucene查询语法中执行此操作,这在我的情况下没有帮助,
2- dismax不支持它和
3- edismax将会或应该支持它
但是,我找不到任何关于如何在edismax查询格式中使用它的文档,甚至在查询语法的默认edsimax页面上也没有,它使用operator~来定义slop因子。我确实尝试在qf参数中根据某些在线链接指定它,但这不起作用,我也假设Solr 4.1默认使用edismax。
因此,如果有人知道它应该如何工作或者它是否支持,那么任何指针都会非常感激。
答案 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”是您可以选择的自定义值。此值确定您的搜索“模糊”程度。当值接近于零时,结果将“更模糊”,反之亦然。