Solr 按每个单词的开头搜索

米哈乌·奥西克

我需要实现一个搜索来寻找每个单词的开头。假设我们有一个有价值的文档:

target: "New World"

我希望能够通过以下短语的示例找到该文档:“ne”、“wo”、“ne wo”。

前两个短语很容易实现。问题出在最后一个。我尝试了以下查询:

"q=target:(+ne* +wo*)"

它有效。但是这个解决方案对我来说似乎有点难看,我想知道是否有更快更干净的方法?尝试使用 TermQueries 和 Suggesters 但似乎没有任何效果......

马茨林德

您可以使用复杂短语查询解析器

它将允许您编写q={!complexphrase inOrder=true}target:"ne* wo*",这与您的示例不同,world new不会产生命中。

您的另一个选择是使用 EdgeNgramFilter,然后使用target:"ne wo".

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章