У меня есть кластер ES с 3-мя узлами данных (8 ядер, 16 ОЗУ, 500 SSD) с индексом в 1 день (6 сегментов) с 12 миллионами записей в день.
Каждая запись похожа на CSV с 40 столбцами, и я проиндексировал 8 из них, поскольку могу сделать запрос не более, чем среди этих 8, поэтому каждая запись выглядит так (я обозначаю index = true):
sellerNumber (I), покупательNumber (I), количество (I), тип (I), категория (I), bla1, bla2, .... bla30
Обратите внимание, что все вышеперечисленное Is является ключевым словом, кроме количество.
Теперь, если я сделаю запрос, например:
{
"from": 0,
"query": {
"bool": {
"filter": [
{
"term": {
"sellerNumber": {
"value": "7338964890"
}
}
}
]
}
}
}... and so many filters/must_not to keep search in filter context
Теперь проблема заключается в том, что если только условие с одним термином для sellerNumber
выше, для каждого индекса Cumulative Time: 330.373ms
(идет 1- 2 se c при поиске данных за последние 7-8 дней), что недопустимо, поскольку любая RDB сделает это за 50 мс в таблице из 10 млн записей.
информация о сопоставлении для sellerNumber: "mappings": {"sellerNumber": {"full_name": "sellerNumber", "mapping": {"sellerNumber": {"тип": "ключевое слово"}}}}
Есть ли способ повысить производительность?