ElasticSearch Nest 2.x 使用 _all 搜索突出显示嵌套对象
ElasticSearch Nest 2.x Highlight Nested Object With _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 in parent,include in root,但没有什么区别。
我排除了评论,因为我不想 return 他们,只是他们的亮点。我也试过没有排除的查询。
我只需要嵌套对象的高亮显示。
我不得不在高亮部分使用 RequireFieldMatch(false)。
我似乎无法在使用 _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 in parent,include in root,但没有什么区别。
我排除了评论,因为我不想 return 他们,只是他们的亮点。我也试过没有排除的查询。
我只需要嵌套对象的高亮显示。
我不得不在高亮部分使用 RequireFieldMatch(false)。