0

如何text_phrase对多个字段使用查询?

我的案例:
用户类型hello world。它的标题或内容(或两者)字段包含hello (cool) world-> 返回此文档

4

1 回答 1

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}}
                }
            ]
        }
    }
}'
于 2012-06-30T21:21:07.083 回答