2

私のelasticsearchにはデータがあり、特に日付については次のようなものです:

{
  "startTime": {
    "type": "string",
    "format": "yyyy/MM/dd",
    "index": "analyzed",
    "analyzer": "keyword"
  }
}

日付範囲ピッカーを追加していて、選択した日付を使用して、選択した範囲内の startTime を使用してelasticsearchにクエリを実行したいと考えています。このクエリをelasticsearchに構造化する方法、またはこれが文字列フィールドであっても機能するかどうかはわかりません(ただし、変更できる可能性があります)。

誰かがここで私を助けることができますか?

4

1 に答える 1

6

フィールドは文字列です。フォーマット プロパティは無視されます。マッピングを変更して、date型を使用する必要があります。ここを見て、elasticsearch で利用可能なコア タイプを確認してください。

クエリの代わりにフィルターを使用します。キャッシュされるため、高速になります。以下は、過去 7 日間の例です。

{
    "filter" : {
        "range" : {
            "PublishTime" : {
                "from" : "20130505T000000",
                "to" : "20131105T235959"
            }
        }
    }
}

このようにフィルターを使用すると、1 日中同じフィルターになるため、キャッシュを有効に活用できることに注意してください。

于 2013-05-11T09:02:04.900 に答える