对文本字段中的多个单词进行Solr通配符查询

时间:2017-04-27 12:07:39

标签: solr lucene whitespace wildcard

我在名为“doc”的文本字段中搜索“foo”,后跟“bar”。 我的查询需要匹配文本“foo走进酒吧”但不是“酒吧有foo的地方” 我见过几个类似的问题,但没有具体的答案。 查询不起作用: Q = DOC:FOO *巴 Q = DOC:。/.* FOO / 这似乎是因为文本字段中的每个单词都是单独标记的。有办法解决这个问题吗? (注意:我无法更改字段类型)

1 个答案:

答案 0 :(得分:1)

查看Surround Query ParserComplex Phrase Query Parser

  

SurroundQParser启用Surround查询语法,该语法提供   邻近搜索功能。

     

有两个位置运算符:w创建一个有序的跨度查询   并且n创建了一个无序的。两个运算符都采用数值   表示两个术语之间的距离。默认值为1,并且   最大值为99

     

请注意,不会以任何方式分析查询字符串。

     

示例:

{!surround} 3w(foo, bar)
     

此示例将找到术语“foo”和“bar”的文档   不超过3个学期(即不超过2个学期)   他们之间)。

关于复杂词组查询解析器,请注意inOrder参数,该参数可让您指定匹配关键词的顺序。