share facebook facebook2 twitter menu hatena pocket slack

2014.11.10 MON

Elasticsearch 各クエリのメモ

川原 洋平

WRITTEN BY川原 洋平

ども、cloudpackかっぱ@inokara)です。

はじめに

取り急ぎのメモです。


検索系

インデックスのレコード数確認

curl -XGET 'http://${HOST}:9200/_cat/count/${INDEX_NAME}'

インデックス内から任意のフィールドの値のみを取得

curl -XGET 'http://${HOST}:9200/${INDEX_NAME}/_search?pretty' -d '
{
  "fields": [ "f1","f2","f3"]
}'

ちなみにネストされているレコードも以下のように取得出来る。

curl -XGET 'http://${HOST}:9200/${INDEX_NAME}/_search?pretty' -d '
{
  "fields": [ "f1.n1","f2.n2","f3.n3"]
}'

件数を指定して値を取得する

curl -XGET 'http://${HOST}:9200/${INDEX_NAME}/_search?pretty' -d '
{
  "from": 0,
  "size": 5000,
  "fields": [ "f1","f2","f3"]
}'

指定したフィールド内を検索して該当するレコードのみを取得する

curl -XGET 'http://${HOST}:9200/${INDEX_NAME}/_search?pretty' -d '
{
  "fields": [ "f1","f2","f3"],
  "query" : {
    "simple_query_string" : {
      "fields": ["f1"],
      "query": "strings"
    }
  }
}'

フィールド f1 内を strings で検索してマッチしたレコードのうち f1f2f3 のみを出力する。

f1 フィールドに “kappa is aho” を含むレコードを取得したい

curl -XGET 'http://${HOST}:9200/${INDEX_NAME}/_search?pretty' -d '
{
  "fields": [ "f1","f2","f3"],
  "query" : {
    "simple_query_string" : {
      "fields": ["f1"],
      "query": "kappa+is+aho"
    }
  }
}'

ちなみに…

curl -XGET 'http://${HOST}:9200/${INDEX_NAME}/_search?pretty' -d '
{
  "fields": [ "f1","f2","f3"],
  "query" : {
    "simple_query_string" : {
      "fields": ["f1"],
      "query": "kappa is aho"
    }
  }
}'

で検索すると…kappa was ikemenfukuyama masaharu is cool も含まれてしまう(はず)。


引続き…

めもります。

元記事はこちらです。
Elasticsearch 各クエリのメモ