Я изучаю Elasticsearch, поэтому я не уверен, что этот запрос верен. Я проверил, что данные индексируются, но я не получаю никаких хитов. Что я делаю не так? Разве это не должно попасть в автомобиль, где имя создателя steve?Запрос вложенного документа Elasticsearch
builder
.startObject()
.startObject("car")
.field("type", "nested")
.startObject("properties")
.startObject("creators")
.field("type", "nested")
.endObject()
.endObject()
.endObject()
.endObject();
{
"query": {
"bool": {
"must": [
{
"term": {
"car.creators.name": "Steve"
}
}
],
"must_not": [],
"should": []
}
},
"from": 0,
"size": 50,
"sort": [],
"facets": {}
}
Спасибо! Мне пришлось переместить поле пути из объекта запроса, хотя и вставить «создателей» в путь, и использовать термин creators.name в терминах. Это звучит неправильно или это правильно? – LuckyLuke
Да, вы правы. Путь должен быть на том же уровне, что и запрос, и должен содержать «car.creators». Я обновил этот пример. Не уверен в creators.name в терминах. Является ли автомобиль типом в вашем случае? – imotov
Да, автомобиль есть тип? Поскольку я узнаю об Elasticsearch, не могли бы вы объяснить, почему мне это не нужно, и вам удается заставить его работать с ним? – LuckyLuke