如何针对多个字段使用text_phrase
查询?
我的情况:
用户类型hello world
。标题或内容(或两者)字段包含hello (cool) world
- >返回此文件
答案 0 :(得分:4)
您可以使用boost
查询来执行此操作。您可能希望使用text
查询的更高级形式以提供标题的提升(有时,禁用标题文档的规范也是有意义的,这会使字段的长度影响评分)。以下是完整示例:
curl -XPUT localhost:9200/test -d '{
"index.number_of_shards" : 1,
"index.number_of_replicas" : 0
}'
curl -XPUT localhost:9200/test/type/1 -d '{
"title" : "hello (cool) world",
"content" : "hello (cool) world"
}'
curl -XPUT localhost:9200/test/type/2 -d '{
"title" : "hello (cool) world",
"content" : "xxx"
}'
curl -XPUT localhost:9200/test/type/3 -d '{
"title" : "yyy",
"content" : "hello (cool) world"
}'
curl -XPOST localhost:9200/test/_refresh
curl -XGET localhost:9200/test/_search?pretty -d '{
"query" : {
"bool" : {
"should" : [
{
"text" : {"content" : {"query" : "hello world"}}
},
{
"text" : {"title" : {"query" : "hello world", "boost" : 5}}
}
]
}
}
}'