Lucene和Sphinx支持前缀匹配吗?

发布于 2024-10-30 02:35:49 字数 93 浏览 0 评论 0原文

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

例如,当搜索“mi”时,我希望带有“microsoft”的结果可能出现在结果中,即使没有像“mi”这样的“关键字”。

If not how do you make this work with them and which is better?

e.g. when searching for "mi" i would like results with "microsoft" to potentially show up in a result even though there is no "keyword" like "mi" specifically.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

尾戒 2024-11-06 02:35:49

是的,是的。

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 还可以使用 Lucene 查询解析器语法 并通过 使用通配符 考试*。如果您想部署一个单独的 Lucene 搜索服务器 Solr(使用以下命令调用),则查询解析器语法可以使用HTTP API

在 Sphinx 中,您必须执行以下操作:

  1. 设置 最小前缀长度 为大于 0 的值
  2. 启用通配符语法< /a>
  3. 使用 willdcard exam* 生成查询字符串

Yes and Yes.

Lucene has PrefixQuery:

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

You can also use the Lucene query parser syntax and define the prefix search by using a wildcard exam*. The query parser syntax works if you want to deploy a separate Lucene search server, Solr, that is called using a HTTP API

In Sphinx it seams you have to do the following:

  1. Set minimum prefix length to a value larger than 0
  2. Enable wildcard syntax
  3. Generate a query string with a willdcard exam*
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文