У меня есть этот поисковый запрос, чтобы найти термин поиска запроса «красная собака» в корневом заголовке и описании, а также соответствовать документу вложенных комментариев.ElasticSearch только запрос вложен, если он существует
GET /_all/video/_search
{
"query":{
"bool":{
"should":[
{
"multi_match":{
"query":"red dog",
"fields":[
"Title",
"Description"
],
"type": "cross_fields",
"operator":"and"
}
},
{
"nested":{
"path":"Comments",
"query":{
"multi_match":{
"query":"red dog",
"fields":[
"Comments.Description",
"Comments.Description.folded"
],
"type": "cross_fields",
"operator":"and"
}
}
}
}
]
}
}
}
К сожалению для меня, комментарии, иногда нулевые, когда я упорно их ElasticSearch, можно сделать какое-то «включает в себя, если документ существует» состояние?
Update
Я все еще получаю ту же ошибку
[nested] failed to find nested object under path [Comments]
При попытке запроса с помощью существует
GET /_all/video/_search
{
"query":{
"bool":{
"should":[
{
"multi_match":{
"query":"lisa",
"fields":[
"Title",
"Description"
],
"type":"cross_fields",
"operator":"and"
}
},
{
"nested":{
"path":"Comments",
"query":{
"filtered":{
"query":{
"match_all":{}
},
"filter":{
"exists":{
"field":"Comments.Description"
}
}
}
}
}
}
]
}
}
}
Мое отображение для всего
{
"en":{
"mappings":{
"video":{
"properties":{
"Comments":{
"type":"nested",
"properties":{
"Description":{
"type":"string",
"analyzer":"english",
"fields":{
"folded":{
"type":"string",
"analyzer":"folding"
}
}
}
}
},
"Description":{
"type":"string",
"analyzer":"english",
"fields":{
"folded":{
"type":"string",
"analyzer":"folding"
}
}
},
"Title":{
"type":"string",
"analyzer":"english",
"fields":{
"folded":{
"type":"string",
"analyzer":"folding"
}
}
}
}
}
}
}
}
И мои настройки
{
"settings": {
"analysis": {
"analyzer": {
"folding": {
"tokenizer": "standard",
"filter": [
"lowercase",
"asciifolding"
]
}
}
}
}
}
существует фильтр должен делать то, что вы хотите. https://www.elasticsearch.org/guide/en/elasticsearch/reference/current/query-dsl-exists-filter.html#query-dsl-exists-filter – jhilden
См. править –
Марк, можете ли вы опубликовать полное сопоставление Пожалуйста. – jhilden