Что не так в этом эластичном поисковом запросе?
Я не могу понять, почему у меня нет результатов? Использование ES 2.
"query": {
"filtered": {
"query": {
"match_all": {}
},
"filter": {
"term": {
"technical.techcolor": "red"
}
}
}
}
И вот информация из db, которую я ищу.
{"technical":
[{
"techname22": "test",
"techcolor":"red",
"techlocation": "usa"
}],
"audio":
{
"someAudioMetadata": "test"
}
}
1 ответ
Поскольку вы не указали свое сопоставление, я рассматриваю следующее сопоставление.
Отображение:
{
"mappings": {
"company": {
"properties": {
"technical": {
"type": "nested"
}
}
}
}
}
Поисковый запрос:
{
"query": {
"filtered": {
"query": {
"match_all": {
}
},
"filter": {
"nested": {
"path": "technical",
"filter": {
"term": {
"technical.techcolor": "red"
}
}
}
}
}
}
}
Результат поиска:
"hits": {
"total": 1,
"max_score": 1.0,
"hits": [
{
"_index": "demos",
"_type": "company",
"_id": "1",
"_score": 1.0,
"_source": {
"technical": [
{
"techname22": "test",
"techcolor": "red",
"techlocation": "usa"
}
],
"audio": {
"someAudioMetadata": "test"
}
}
}
]
}
Чтобы узнать больше о вложенном типе данных, вы можете обратиться к этой официальной документации, а для запроса и контекста фильтра обратитесь к этому