我有一个定义如下的字段:
"replace-field": {
"name":"search_words",
"type":"lowercase",
"stored":true,
"indexed": true,
"multiValued": true
}
包含句子作为数组(因此multiValued:true):
"id":500
"search_words":["How much oil should you pour into the engine",
"How important is engine oil?]
当用户输入短语“ engine oil”时,我应该如何创建一个查询来返回该文档(id = 500)?
使用单项查询,我可以使用*engine*
,它会发现文档engine
位于句子的中间,但是我找不到找到句子中短语的方法。甚至可以使用solr吗?
答案 0 :(得分:3)
Solr支持短语搜索,这是它的真正目的。默认情况下,通配符搜索并不是真正应该使用Solr的方式-字段类型应告诉Solr如何处理字段中的文本,以使您在常规查询中获得匹配。
在这种情况下,标准text_en
可能会正常工作,或者使用带有标准标记生成器和小写过滤器的字段定义(可能还可以使用WordDelimiterGraphFilter来摆脱特殊字符)。
查询将为search_words:"engine oil"
。