Я работаю над интеграцией elasticsearch в приложение, которое мы строим. У меня возникают проблемы с вложенными запросами и фильтрами. Вот пример нашего отображения:Объединение фильтра и запроса whitin вложенного документа в elasticsearch
"index": {
"mappings": {
"users": {
"properties": {
"membership": {
"type": "nested",
"properties": {
"membership": {
"type": "string"
},
"start date": {
"type": "date"
},
"end date date": {
"type": "date"
}
}
}
}
}
}
}
Теперь я хочу, чтобы найти всех пользователей с «членство» «Foo бар», без EndDate. Проблема в том, что, когда я использую стандартный анализатор, «foo bar» разбивается на два слова в индексе, поэтому я не могу использовать фильтр терминов для поиска «foo bar». Мы можем решить это, используя другой анализатор, но это имеет и другие недостатки, такие как проблемы с верхними/нижними шкафами и т. Д.
Кроме того: довольно легко найти всех с членством «foo bar», используя запрос вместо фильтр. Проблема в том, что нет запроса на поиск вложенных документов с «Конечной датой» = отсутствует. Для этого есть фильтр, но я не могу совместить запрос «membership» = «foo bar» с фильтром «дата окончания» = отсутствует в одном и том же вложенном документе.
Итак, я могу найти всех с «конечной датой» = отсутствует, и я могу найти всех с членством «foo bar», но не у всех без конечной даты, специально для членства «foo bar».
Есть ли какие-либо предложения по решению этой проблемы?