Solr 按每个单词的开头搜索

Solr search by beginning of each word

我需要执行搜索以查找每个单词的开头。假设我们有一个价值的文件:

target: "New World"

我希望能够通过以下短语示例找到该文档:"ne"、"wo"、"ne wo".

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

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

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

您可以使用 the Complex Phrase Query Parser.

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

您的另一个选择是 use a EdgeNgramFilter,然后使用 target:"ne wo" 进行搜索。