Добрый день
Я создал индекс
create table IF not EXISTS data(nomer string, level int, name text, spec json)
Затем я заполнил индекс и в поле spec загнал данные вот такие
[
{
top: “toptoptop1”,
affected_items: “item1”
},
{
top: “toptoptop1”,
affected_items: “item1”
},
…
{
top: “toptoptopN”,
affected_items: “itemN”
}
]
Вот теперь вопрос, как я могу осуществить поиск по полю “top”, я нигде не нашел инфу, единственный выход я пока что вижу что это создать другой индекс а потом его связать?
Хочу избавиться от эластика, там я делаю такой поиск через nested.
Я посмотрел доку, но я все равно не вижу как мне сделать нечеткий поиск по полю “top”, в приведенный примерах зачем-то используется подзапрос(я не знаю как это по другому назвать) в select, чтобы потом отфильтровать его в where, я попытался добавить match в цикл, но ожидаемо появилась ошибка ( ```
any(MATCH(x.top “top1”) for x in spec)
Я понял, а Вы планируете добавить такой функционал? чтобы пользак на этапе создания индекса/таблицы мог указать структуру json? в эластике это оч удобно
nested поля можно разворачивать на этапе индексации в поля c вложенными именами, типа top.type и при поиске искать текст с ограничителем по полю ... WHERE MATCH('@top.type text') но у нас это не делается
Может остался код который делал такое в режиме совместимости, а может уже и нет.