我需要实现一个搜索来寻找每个单词的开头。假设我们有一个有价值的文档:
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] 删除。
我来说两句