Допустим, я хочу хранить документы, подобные приведенному ниже:
{
"item_id": 1,
"item_price": 500,
"currency": "USD"
}
Я хочу, чтобы поле валюты было похоже на ENUM, поэтому я могу предварительно задать набор значений, таких как: "USD", "GBP", "EUR" и так далее ...
Я также хотел бы, чтобы каждое значение было связано с целым числом, таким как карта хешей, поэтому набор значений будет выглядеть следующим образом:
{ "USD":1, "GBP":2, "EUR":3 }
Как оболочка я сопоставить это поле?
2 ответа
Вы должны объявить свой enum в своем коде индексации, и ваш документ должен быть денормализован следующим образом:
{
"item_id": 1,
"item_price": 500,
"currency": "USD",
"currency_id": 1
}
Что касается типов данных, я предлагаю объявить поле currency
как keyword
и поле currency_id
как byte
или short
в зависимости от количества валют, которые вы нужно отслеживать.
Я предлагаю использовать keyword
тип данных, это довольно эффективно
Новые вопросы
elasticsearch
Elasticsearch - это поисковая система с открытым исходным кодом (Apache 2), распределенная, RESTful, основанная на Lucene.