Elasticsearch クエリメモ
Elasticsearchをたまにしか使わなくて、使う時にはクエリをすっかり忘れているので、メモ書き。
ES_HOSTNAME=https://example.com:9200 ES_INDEX=logstash-yyyy.mm.dd ## インデックス一覧 curl -X GET "${ES_HOSTNAME}/_cat/indices?v" ## エイリアス一覧 curl -X GET "${ES_HOSTNAME}/_aliases?v" ## インデックスの削除 (logstash-yyyy.mm.dd はインデックス名) curl -XDELETE "${ES_HOSTNAME}/${ES_INDEX}" ## マッピング確認 curl -XGET "${ES_HOSTNAME}/${ES_INDEX}/_mapping?pretty" ## インデックスのレコード数 確認 curl -XGET "${ES_HOSTNAME}/_cat/count/${ES_INDEX}" ## 全件抽出 curl -XGET "${ES_HOSTNAME}/${ES_INDEX}/_search?pretty" -H 'Content-Type: application/json' -d' { "query": { "match_all": {} } } '
検索系
## 完全一致検索 (termを使う) curl -XGET "${ES_HOSTNAME}/${ES_INDEX}/_search?pretty" -d ' { "query": { "term": { "field_name" :"field_value" } } } ' ## いずれかが含まれる (termsを使う) curl -XGET "${ES_HOSTNAME}/${ES_INDEX}/_search?pretty" -d ' { "query": { "terms": { "objects.xxx_id": [1, 2, 3] } } } ' ## AND検索 (bool,mustでくくる) curl -XGET "${ES_HOSTNAME}/${ES_INDEX}/_search?pretty" -d ' { "query": { "bool": { "must": [ { "terms": { "objects.xxx_id": [1, 2, 3] } }, { "term": { "yyy_id": 100 } } ] } } } '