Elasticsearch Prefix query 前綴查詢

Elasticsearch Prefix query 前綴查詢

摘要

返回包含指定前綴的所有文檔;簡單來說,就是文檔某個field字段的前幾個單詞的前綴爲value,則滿足匹配條件。

參數

field,想要搜索的字段

field 下級參數

value 必選項,前綴

請求示例

GET blak_new/_search
{
  "query": {
    "prefix": {
      "addres": {
        "value": "str"
      }
    }
  }
}

 /* 簡化版 */
GET blak_new/_search
{
    "query": {
        "prefix" : { "addres" : "str" }
    }
}

返回結果

{
  "took" : 2,
  "timed_out" : false,
  "_shards" : {
    "total" : 1,
    "successful" : 1,
    "skipped" : 0,
    "failed" : 0
  },
  "hits" : {
    "total" : {
      "value" : 389,
      "relation" : "eq"
    },
    "max_score" : 1.0,
    "hits" : [
      {
        "_index" : "blak_new",
        "_type" : "_doc",
        "_id" : "6",
        "_score" : 1.0,
        "_source" : {
          "account_number" : 6,
          "balance" : 5686,
          "firstname" : "Hattie",
          "lastname" : "Bond",
          "age" : 36,
          "gender" : "M",
          "address" : "671 Bristol Street",
          "employer" : "Netagy",
          "email" : "[email protected]",
          "city" : "Dante",
          "state" : "TN"
        }
      }
      /* 省略其他結果 */
    ]
  }
}

注意事項

  1. 加快前綴查詢;可以使用 index_prefixes 參數,加快查詢速度;如果使用,Elasticsearch 會在一個單獨的字段中索引2到5個字符之間的前綴。這使得Elasticsearch 可以以更大的索引爲代價,更有效的運行前綴索引。
  2. 允許昂貴查詢,如果search.allow_expensive_queries 設置爲false,則不會執行前綴查詢。但是,如果index_prefixes啓用,則會構建一個優化的查詢,該查詢並不算慢,儘管有此設置也將執行該查詢。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章