我正在使用solr-4.5.1。我需要进行模糊搜索,并且通过在单词末尾附加'〜'来进行操作。现在我需要与空间进行模糊匹配。例如,我需要通过“BillGates”搜索“比尔盖茨”。任何人都可以提供帮助。
答案 0 :(得分:1)
请你再描述一下你的问题了吗?你的疑问是什么?您希望该查询匹配的可能命中数是多少?
顺便说一句“A B”〜不是模糊查询,它是邻近查询。示例“蝙蝠侠电影”~100是查找“蝙蝠侠”在“电影”的100个单词中出现的所有文件。
要进行模糊搜索,请使用单字词末尾的波浪号“〜”符号。例如,要搜索拼写为“漫游”的术语,请使用模糊搜索:
漫游〜
因此存在巨大差异。
更多信息:http://lucene.apache.org/core/2_9_4/queryparsersyntax.html
修改强>
这是你需要做的: 使用text_en_splitting作为字段类型,例如:
<field name="names" type="text_en_splitting" indexed="true" stored="true"/>
重新索引您的数据,这将与您的查询相匹配。不需要为此模糊匹配。 使用它,看看你的查询是如何工作的。魔术由标记器完成,重要的是由solr.WordDelimiterFilterFactory完成。
您可以在此处阅读有关tokenizer的更多信息:
http://wiki.apache.org/solr/AnalyzersTokenizersTokenFilters