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"
进行搜索。
我需要执行搜索以查找每个单词的开头。假设我们有一个价值的文件:
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"
进行搜索。