如果我要创建这样的查询:
find_by(id: x)
"query": {
"query_string": {
"query": "User:mjohnst",
"default_field": "Text",
"fields": [
"Text",
"ProcessedText"
],
"default_operator": "and",
"lowercase_expanded_terms": false
}
}
- > query_string
显式指定了一个字段,但query
属性设置为其他字段,预期的行为是什么?会搜索fields
,User
和Text
,还是只搜索ProcessedText
?
答案 0 :(得分:1)
测试它的最简单方法是使用验证查询API:
curl "localhost:9200/test/doc/_validate/query?pretty&explain" -d '{
"query": {
"query_string": {
"query": "User:mjohnst blah",
"default_field": "Text",
"fields": [
"Text",
"ProcessedText"
],
"default_operator": "and",
"lowercase_expanded_terms": false
}
}
}'
{
"valid" : true,
"_shards" : {
"total" : 1,
"successful" : 1,
"failed" : 0
},
"explanations" : [ {
"index" : "test",
"valid" : true,
"explanation" : "filtered(+User:mjohnst +(Text:blah | ProcessedText:blah))->cache(_type:doc)"
} ]
}
正如您所看到的,使用明确指定的字段mjonst
的字词会针对此字段(User
)进行搜索,将针对{{1}中的所有字段搜索不带字段的字词blah
} list。
答案 1 :(得分:0)
在某些文档上对此进行了测试,它只返回与User