Я пытаюсь выяснить, какой способ лучше запрашивать, но мои тесты не дают окончательных результатов, возможно, потому, что я не могу генерировать достаточно данных локально.
Рассмотрим это сопоставление:
{
"mappings": {
"_doc": {
"properties": {
"day": {
"type": "date",
"format": "yyyyMMdd",
"fields": {
"keyword" : {
"type" : "keyword"
}
}
},
... other stuff ...
}
}
}
}
При поиске непрерывного диапазона дат (например, с 20191001 по 20191010) я могу использовать terms
или date_range
, что имеет больше преимуществ с точки зрения производительности, кэширования или использования памяти?
Использованиеterms
:
{
"query" : {
"bool" : {
"must" : [
{
"terms" : {
"day.keyword" : [
"20191001",
"20191002",
"20191003",
"20191004",
"20191005",
"20191006",
"20191007",
"20191008",
"20191009",
"20191010"
]
}
}
]
}
}
}
Использование date_range
:
{
"query": {
"bool": {
"filter": [
{
"range": {
"day": {
"gte": "20191001",
"lte": "20191010"
}
}
}
]
}
}
}