Elasticsearch kibanaクエリー

4691 ワード

一、
簡単なCRUD操作
1、追加
PUT /index/type/id
{
  "json  "
}

2、照会
GET /index/type/id

3、修正
POST /index/type/id/_update

{
  "doc": {
    "FIELD": " "
  }
}

4、削除
DELETE /index/type/id


二、検索
検索は6つのクラスに分けることができます
1、query string search 2、query DSL 3、query filter 4、full-text search 5、phrase search 6、highlight search
 
1)query string search
すべて検索:GET supplier/user/search
{
  "took": 2,
  "timed_out": false,
  "_shards": {
    "total": 5,
    "successful": 5,
    "failed": 0
  },
  "hits": {
    "total": 3,
    "max_score": 1,
    "hits": [
      {
        "_index": "supplier",
        "_type": "user",
        "_id": "2",
        "_score": 1,
        "_source": {
          "name": "lisi",
          "age": 26,
          "address": "bei jing tong zhou",
          "price": 10000,
          "dept": [
            "kaifabu"
          ]
        }
      },
      {
        "_index": "supplier",
        "_type": "user",
        "_id": "1",
        "_score": 1,
        "_source": {
          "name": "zhangsan",
          "age": 30,
          "address": "bei jing chang chun jie",
          "price": 15000,
          "dept": [
            "kaifabu",
            "yanfabu"
          ]
        }
      },
      {
        "_index": "supplier",
        "_type": "user",
        "_id": "3",
        "_score": 1,
        "_source": {
          "name": "wangwu",
          "age": 26,
          "address": "bei jing tong zhou yun he ming zhu",
          "price": 13000,
          "dept": [
            "kaifabu"
          ]
        }
      }
    ]
  }
}

took:数ミリ秒かかりました
timed_out:タイムアウトするかどうか、ここにはありません
_shards:データは5つのスライスに分割されているので、検索要求に対してすべてのprimary shard(またはそのreplica shard)に打たれます.
hits.total:クエリー結果の数、3つのdocument
hits.max_score:scoreの意味は、documentが1つのsearchの相関度に対する整合点数であり、相関すればするほど整合し、点数も高いことである.
hits.hits:検索に一致するdocumentの詳細データが含まれています
2、query DSL
すべてのクエリー
GET supplier/user/_search
{
  "query": { "match_all": {} }
}

クエリーをすべてソート
GET suppluer/user/_search
{
  "query": {
    "match_all": {}
  }
  , "sort": [
    {
      "price": {
        "order": "desc"
      }
    }
  ]
}

ページングクエリ
GET supplier/user/_search
{
  "query": { "match_all": {} },
  "from": 1,
  "size": 1
}

クエリー表示するfieldを指定
GET supplier/user/_search
{
  "query": { "match_all": {} },
  "_source": ["name", "price"]
}

3、query filter
検索nameがlisiでpriceが1500より大きい
GET supplier/user/_search
{
    "query" : {
        "bool" : {
            "must" : {
                "match" : {
                    "name" : "lisi" 
                }
            },
            "filter" : {
                "range" : {
                    "price" : { "gt" : 1500} 
                }
            }
        }
    }
}

4、full-text search(全文検索)
addressというフィールドは、先に分解され、逆インデックスが作成されます
GET /ecommerce/product/_search
{
    "query" : {
        "match" : {
            "address" : "bei jing"
        }
    }
}

5、phrase search(フレーズ検索)
全文検索に対応して、逆に全文検索は入力した検索列を分解して、インデックスの中に並べ替えて一つ一つマッチングして、上のいずれかの分解後の単語にマッチングできれば、結果としてphrase searchを返すことができて、入力した検索列を要求して、指定したフィールドのテキストの中で、完全にそっくりを含んでこそ、マッチングを計算することができます.結果として返される
GET /ecommerce/product/_search
{
    "query" : {
        "match_phrase" : {
            "address" : "bei jing"
        }
    }
}

6、highlight search(ハイライト検索結果)
GET /ecommerce/product/_search
{
    "query" : {
        "match" : {
            "address" : "bei jing"
        }
    },
    "highlight": {
        "fields" : {
            "address" : {}
        }
    }
}