我正在搜索我的应用程序。对于输入的搜索词(foo),
1)我寻找完全匹配(foo),如果它返回NULL
2)我使用模糊搜索(foo~),如果它返回NULL
3)我使用通配符(foo *)。
这是一种有效的方法吗?或者是否有lucene
方法来完成所有这些操作?
答案 0 :(得分:1)
在Lucene中没有内置的方法。但是,通常这种情况是在客户端的Lucene之外处理的。是的,根据我的经验,它非常有效,因为它通常提供高精度的结果。在互联网上的一些来源中,它被称为分阶段搜索
E.g。你创建一个完全匹配的查询,让我们说 TermQuery("字段"," foo"),如果这个查询没有返回任何内容,那么使用FuzzyQuery和最后一个PrefixQuery(我会推荐它通过WildcardQuery,为你想做的最后一个案例)