Поиск по массиву в поле Elasticsearch
У меня есть коллекция документов Elasticsearch, которые выглядят примерно так:
{
"_score": 1,
"_id": "inv_s3l9ly4d16csnh1b",
"_source": {
"manufacturer_item_id": "OCN1-1204P-ARS4",
"description": "TLX Headlight",
"ext_invitem_id": "TDF30907",
"tags": [
{
"tag_text": "Test Tag"
}
],
"id": "inv_s3l9ly4d16csnh1b",
},
"_index": "parts"
}
Я хочу иметь возможность искать документы по tag_text
в tags
, но я также хочу искать по другим полям. Я составил запрос multi_match
, который выглядит следующим образом:
{
"query": {
"multi_match": {
"query": "Test Tag",
"type": "cross_fields",
"fields": [
"tags",
"description"
]
}
}
}
Но я не получаю никаких результатов. Может ли кто-нибудь сказать мне, что не так с моим запросом?
Хорошо, оказывается, я делал что-то глупое. Я получил ожидаемые результаты, используя этот запрос:
{
"query": {
"multi_match": {
"query": "Test Tag",
"type": "cross_fields",
"fields": [
"tags.tag_text",
"description"
]
}
}
}