1. 程式人生 > >搜索請求實體(Request Body Search)

搜索請求實體(Request Body Search)

pad ons source http get rom time 客戶 -o pos

Request Body Search

  可以使用搜索DSL來執行搜索請求,再其請求體中包括Query DSL。這是一個例子:

GET /twitter/tweet/_search
{
    "query" : {
        "term" : { "user" : "kimchy" }
    }
}

  這裏是一個示例響應:

{
    "took": 1,
    "timed_out": false,
    "_shards":{
        "total" : 1,
        "successful" : 1,
        "failed" : 0
    },
    "hits":{
        "total" : 1,
        "max_score": 1.3862944,
        "hits" : [
            {
                "_index" : "twitter",
                "_type" : "tweet",
                "_id" : "0",
                "_score": 1.3862944,
                "_source" : {
                    "user" : "kimchy",
                    "message": "trying out Elasticsearch",
                    "date" : "2009-11-15T14:12:12",
                    "likes" : 0
                }
            }
        ]
    }
}

Parameters

timeout

搜索超時,限制在指定時間值內執行的搜索請求,並在到期時積累的命中保釋。默認為無超時。請參閱“Time unitsedit”一節。

from

從某個偏移量中檢索匹配。默認為0。

size

要返回的命中數。默認為10。如果您不關心返回的命中,但僅關於匹配and/or聚合的數量,將值設置為0將有助於提高性能。

search_type

要執行的搜索操作的類型。可以是dfs_query_then_fetch或query_then_fetch。默認為query_then_fetch。查看搜索類型了解更多。

request_cache

設置為true或false以啟用或禁用大小為0的請求的搜索結果的緩存,即聚合和建議(不返回頂部匹配)。請參閱Shard請求緩存。

terminate_after

每個分片收集的最大文檔數量,到達時查詢執行將提前終止。如果設置,響應將有一個布爾字段terminate_early來指示查詢執行是否實際已終止。默認沒有terminate_after。

  在上述中,search_type和request_cache必須作為查詢字符串參數傳遞。搜索請求的其余部分應在主體本身內傳遞。請求體內容也可以作為名為source的REST參數傳遞。

  HTTP GET和HTTP POST都可以通過請求體來執行搜索。由於並非所有客戶端都支持請求體GET,POST也是允許的。

Fast check for any matching docs(快速檢查任何匹配的文檔)

  如果我們只想知道是否有匹配特定查詢的文檔,我們可以將大小設置為0,表示我們對搜索結果不感興趣。此外,我們可以將terminate_after設置為1,以指示每當找到第一個匹配文檔(每個分片)時,查詢執行可以被終止。

GET /_search?q=message:elasticsearch&size=0&terminate_after=1

  響應將不會包含任何匹配,因為大小設置為0。hits.total將等於0,表示沒有匹配的文檔,或大於0表示在提前終止時至少有相同數量的匹配查詢文檔。此外,如果查詢提前終止,則在響應中將terminate_early標誌設置為true。

{
  "took": 3,
  "timed_out": false,
  "terminated_early": true,
  "_shards": {
    "total": 1,
    "successful": 1,
    "failed": 0
  },
  "hits": {
    "total": 1,
    "max_score": 0.0,
    "hits": []
  }
}

  

原文地址:https://www.elastic.co/guide/en/elasticsearch/reference/5.0/search-request-body.html

搜索請求實體(Request Body Search)