2014年5月15日 星期四

[elasticsearch]search api query / request body search


之前提過 如何使用 elasticsearch url query string search ,大部分的 elasticsearch的 api都支援 multi-index, multi-type 使用在 api 的 endpoints 上。

 request body search 

elasticsearch 可以透過 request 傳入 query DSL (domain specific language)來執行 search。

$ curl -XGET 'http://localhost:9200/twitter/tweet/_search' -d '{
    "query" : {
        "term" : { "user" : "pc" }
    }
}
'
response

{
    "_shards":{
        "total" : 5,
        "successful" : 5,
        "failed" : 0
    },
    "hits":{
        "total" : 1,
        "hits" : [
            {
                "_index" : "twitter",
                "_type" : "tweet",
                "_id" : "1",
                "_source" : {
                    "user" : "pc",
                    "postDate" : "2013-11-15T14:12:12",
                    "message" : "hello world ~ Elasticsearch"
                }
            }
        ]
    }
}

query 

在傳入request 時,可以在body 帶入 query DSL。

{
    "query" : {
        "term" : { "user" : "pc" }
    }
}
這裡有兩種基本的 query "term" ,"prefix"。
也可以組成 bool 的query,也可以使用 filter 去篩選資料。
a




沒有留言:

張貼留言