Эластичный поиск. Поиск по значению вложенной коллекции
Нужна помощь с конкретным запросом ES. У меня есть объекты по индексу Elastic Search. Пример одного из них (Участник):
{
"_id": null,
"ObjectID": 6008,
"EventID": null,
"IndexName": "crmws",
"version_id": 66244,
"ObjectData": {
"PARTICIPANTTYPE": "2",
"STATE": "ACTIVE",
"EXTERNALID": "01010111",
"CREATORID": 1006,
"partAttributeList":
[
{
"SYSNAME": "A",
"VALUE": "V1"
},
{
"SYSNAME": "B",
"VALUE": "V2"
},
{
"SYSNAME": "C",
"VALUE": "V2"
}
],
....
Мне нужно найти единственную сущность (ы) с помощью сущностей partAttributeList. Например, весь объект участника с SYSNAME=A, VALUE=V1 в том же объекте partAttributeList.
Если я использую спички usul:
{"match": {"ObjectData.partAttributeList.SYSNAME": "A"}},
{"match": {"ObjectData.partAttributeList.VALUE": "V1"}}
Конечно, я найду больше объектов, чем мне действительно нужно. Пример избыточного объекта, который можно найти:
...
{
"SYSNAME": "A",
"VALUE": "X"
},
{
"SYSNAME": "B",
"VALUE": "V1"
}..
1 ответ
То, что я пытаюсь сделать, это поиск по нескольким полям одного и того же объекта для точных совпадений фрагмента текста, поэтому попробуйте это: https://www.elastic.co/guide/en/elasticsearch/guide/current/multi-query-strings.html