Я пытаюсь найти результаты по цвету. В базе данных он записывается в формате rgb
: массив из трех чисел, представляющий значения red, green, and blue
соответственно.Стратегия поиска Elasticsearch для вложенных элементов массива
Вот как он хранится в БД и elasticsearch записи (хранящей 4 RGB цвета в массиве):
"color_data":
[
[253, 253, 253],
[159, 159, 159],
[102, 102, 102],
[21, 21, 21]
]
Есть ли стратегия запроса, которая позволит мне найти similar
цвета? точного совпадения или в пределах близкого диапазона значений rgb?
Вот метод, который я пытаюсь, но метод адресации доступа к значениям массива не работает:..
curl -X GET 'http://localhost:9200/_search' -d '{
"from": 0,
"size": 50,
"range": {
"color_data.0.0": {
"gte": "#{b_lo}",
"lte": "#{b_hi}"
},
"color_data.0.1": {
"gte": "#{g_lo}",
"lte": "#{g_hi}"
}
}
}'
(r_lo, r_hi и др устанавливаются +/- 10 из значений RGB, записанных в color_data переменной)
Я реализовал это как скриптовый поисковый запрос для примера, но по какой-то причине он всегда возвращает полный набор записей ... как будто я запросил match_all: {}. Не знаю, почему это происходит ... – diego