Lucene和Sphinx是否支持前缀匹配?

时间:2011-04-03 00:36:49

标签: lucene sphinx

如果不是,你如何与他们合作,哪个更好?

e.g。当搜索“mi”时,我希望“microsoft”的结果可能会显示在结果中,即使没有像“mi”这样的“关键字”。

1 个答案:

答案 0 :(得分:3)

是和是。

Lucene有PrefixQuery

BooleanQuery query = new BooleanQuery();
for (String token : tokenize(queryString)) {
  query.add(new PrefixQuery(new Term(LABEL_FIELD_NAME, token)), Occur.MUST);
}
return query;

您还可以使用Lucene query parser syntax并按using a wildcard exam*定义前缀搜索。如果要部署使用HTTP API调用的单独Lucene search server, Solr,

,则查询解析器语法有效

在Sphinx中,您需要执行以下操作:

  1. minimum prefix length设置为大于0的值
  2. Enable wildcard syntax
  3. 使用willdcard exam*
  4. 生成查询字符串