Поиск документов Elasticsearch по квалификациямJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Поиск документов Elasticsearch по квалификациям

Сообщение Anonymous »

Моя проблема очень похожа на эту: Elasticsearch: поиск документа с условным фильтром
Однако структура данных у меня немного другая, поэтому я не могу использовать решение для другого потока.
/>У меня проиндексировано много документов. Есть, как мы это называем, определители, указывающие мне, нужно ли показывать определенные документы или нет. Вот момент, когда начинаются мои проблемы. Вот пример:

Код: Выделить всё

{
locale: en_US,
type: bla,
qualifiers: [
{
criteria: [
{
type: year_range,
lower: 2024,
upper: 2027
},
{
type: ids,
values: [1,20]
}
,
{
type: string_range_term,
lower: "123455",
upper: "zzzzzz"
}
]
},
{
criteria: [
{
type: year_range,
lower: 2010,
upper: 2012
}
]
}
]
}
В качестве входных данных мне нужно указать все параметры: год, идентификаторы, срок действия.
Документ должен быть сопоставлен следующим образом:
  • чтобы вернуть этот документ, должен совпадать весь список критериев хотя бы для одного квалификатора.
  • всегда будут указываться входные параметры все возможные значения
  • если тип критерия существует – должен совпадать ИЛИ должен отсутствовать
примеры:
  • ввод
    год: 2011
    id:10
    срок: аааа
  • должен совпадать – поскольку второй критерий содержит диапазон лет, соответствующий входным – другие параметры игнорируются, поскольку этот критерий содержит один элемент
  • ввод
    год: 2013
    id: 1
    термин: zzzzzz
    < /ol>
    • не должно совпадать - поскольку год не совпадает, несмотря на совпадения идентификатора и условий
  • ввод
    год: 2025
    id: 20
    срок: zzzzzz
  • должен соответствовать, поскольку совпадают все критерии
  • < li>ввод:
    год: 2025
    id: 50
    термин: zzzzzz
  • не должно совпадать, поскольку ни один из идентификаторов не совпадает.
Буду благодарен за любые подсказки или советы, поскольку я боролся с этим уже 4 дня без многообещающих результатов. Я думаю, стоит ли мне реорганизовать данные - поскольку это почти 1:1 со структурой базы данных - где это работает нормально... однако мне нужно немного ускорить выбор документов, поэтому я хотел переместить их в ES.
Мне нужно будет реализовать это в Java, используя остальной клиент... но, имея правильный запрос, я смогу преобразовать его в код Java :)
заранее спасибо

Подробнее здесь: https://stackoverflow.com/questions/783 ... filication
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»