Elasticsearch URI搜索多个字段

时间:2017-12-01 22:06:19

标签: elasticsearch

我可以快速URI search喜欢

GET twitter/tweet/_search?q=user:kimchy

我可以通过这种方式搜索多个字段吗?例如,user:kimchy AND age:23

我尝试了1(错误):

curl -XDELETE localhost:9200/myindex/
curl localhost:9200/myindex/mytype/1 -d '{"a":1,"b":9}'
curl localhost:9200/myindex/mytype/2 -d '{"a":9,"b":9}'
curl localhost:9200/myindex/mytype/3 -d '{"a":9,"b":1}'

说我只想要文件{"a":9, "b":9},我试过

GET localhost:9200/myindex/_search?q=a:9&b:9

但我收到错误

{
    error: {
        root_cause: [{
            type: "illegal_argument_exception",
            reason: "request [/myindex/_search] contains unrecognized parameter: [b:9]"
        }],
        type: "illegal_argument_exception",
        reason: "request [/myindex/_search] contains unrecognized parameter: [b:9]"
    },
    status: 400
}

我尝试了2次(有效!):

GET localhost:9200/myindex/_search?q=a:9 AND b:9

空间很重要。或者,使用%20

2 个答案:

答案 0 :(得分:4)

是的,你可以。尝试这样的事情:

GET twitter/tweet/_search?q=user:kimchy%20AND%20age:23

请注意,如果您对此进行URI解码,则相当于:

GET twitter/tweet/_search?q=user:kimchy AND age:23

请注意,当您使用此REST端点时,我认为您确实正在利用query_string_query之类的功能。请参阅这些文档,以了解查询字符串语言的范围和可用的功能。

答案 1 :(得分:0)

是的,你可以。尝试这样的事情:

 GET twitter/tweet/_search?q=user:kimchy&title:jones&pretty=true

pretty=true表示非常好的响应输出。