ElasticSearch Nest 2.x Выделите вложенный объект с помощью _all Search
Я не могу выделить вложенные объекты при использовании поиска _all.
Мой индекс:
{
"settings":{
"analysis":{
"analyzer":{
"nGramAnalyzer":{
"type":"custom",
"filter":[
"lowercase",
"asciifolding",
"NGramFilter"
],
"tokenizer":"WhitespaceTokenizer"
},
"WhitespaceAnalyzer":{
"type":"custom",
"filter":[
"lowercase",
"asciifolding"
],
"tokenizer":"WhitespaceTokenizer"
},
},
"filter":{
"NGramFilter":{
"type":"ngram",
"min_gram":1,
"max_gram":20
}
},
"tokenizer":{
"WhitespaceTokenizer":{
"type":"whitespace"
}
}
}
},
"mappings":{
"CustomerSearchResult":{
"_all":{
"analyzer":"nGramAnalyzer",
"search_analyzer":"WhitespaceAnalyzer"
},
"properties":{
"customerId":{
"type":"string",
"index":"not_analyzed"
},
"remarks":{
"type":"nested",
"properties":{
"remarkId":{
"type":"integer"
},
"customerId":{
"type":"integer"
},
"remarkText":{
"type":"string",
"index":"analyzed",
"analyzer":"nGramAnalyzer",
"search_analyzer":"WhitespaceAnalyzer"
}
}
},
}
}
}
}
Мой запрос:
{
"from":0,
"size":100,
"highlight":{
"pre_tags":[
"<b>"
],
"post_tags":[
"<b>"
],
"fields":{
"remarks.remarkText":{
}
}
},
"_source":{
"exclude":[
"remarks"
]
},
"query":{
"match":{
"_all":{
"query":"test",
"operator":"and"
}
}
}
}
Если я делаю запрос с использованием вложенного запроса, я получаю блики, но мне нужно искать _all. Я пытался установить include в parent, include в root, но это не имело значения.
Я исключаю замечания, потому что не хочу их возвращать, только их основные моменты. Я пробовал запрос без исключения, а также.
Мне нужны только блики для вложенного объекта.
1 ответ
Решение
Мне пришлось использовать RequireFieldMatch(false) на выделении.