Kibanaでデータ検索する機会があったので、備忘録として残します。
範囲を指定して、データを検索する方法です。
Kibana Discoverで指定
age(年齢)が20歳以上、30歳未満のデータを、Kibana Discoverで指定する方法です。
Search フィールドで、次のように指定します。
age >= 20 or age < 30
Kibana コンソールで指定
age(年齢)が20歳以上、30歳未満のデータを、Kibana コンソールで指定する方法です。
"bool"と"should"を使い記載します。
GET /indexA/_search
{
"query": {
"bool": {
"must": [
{ "range": { "age": { "gte": "20", "lt": "30"} } }
]
}
}
}
rangeで指定する場合は、以下を使います。
lt: 未満
lte: 以下
gt: より大きい
gte: 以上
また、現在の時間を基準として計算する場合は、now を使います。
例えば、予約日(yoyaku_date)が、今日から1週間以内のデータを検索する場合は次のようにします。
GET /indexA/_search
{
"query": {
"bool": {
"must": [
{ "range": { "yoyaku_date": { "lte": now+7d+9h} } }
]
}
}
}
ElasticSearchの仕様で、timezoneの自動変換ができないようです。9hを加算することで、日本時刻に合わせることができます。