У меня есть эластичный поисковый индекс, в котором документы хранятся следующим образом:
{
categorisedTags:
{ urlTags: { L: [] },
commodityTags: { L: [Array] },
tags: { L: [] } },
newOptions: [],
created_at: 'Mon, 07 Oct 2019 12:55:34 GMT',
name: 'Template ',
}
Мне нужно запросить индекс с помощью «commodityTags», поэтому, учитывая строку, он должен вернуть все документы, гдеСтрока включена в массив commodityTags.
Я пробовал с:
service.queryTags = async (index, values) => {
const { hits } = await esClient.search({
index,
type: '_doc',
body: {
query: {
term: {
'categorisedTags.commodityTags': 'oil'
}
},
},
});
return hits.hits.map(({ _source }) => _source);
};
Но не повезло, всегда возвращает 0 хитов. Как я могу сделать этот тип вложенных запросов на ES?