![](/img/trans.png)
[英]C# NEST ElasticSearch search and highlight all fields in all types
[英]Highlight All fields Nest ElasticSearch
每个人
我正在为c#使用Elasticsearch的Nest驱动程序。 在我的项目中,我没有任何文档映射,因此,如果要突出显示匹配的字段,则应在查询中使用此Json部分来突出显示所有字段:
"highlight":{
"fields":{
"*":{}
}
}
但我想用巢做。 我使用以下代码:
client.Search<dynamic>(s => s
.Index('my index name')
.Type('my doc type name')
.From(page*PageSize)
.Size(PageSize)
.Query(q => q
.QueryString(qs => qs.Query('my query')))
.Highlight(h => h
.OnFields(f => f
.OnAll()
.PreTags("<b style='color:black'>")
.PostTags("</b>")
)));
并且对我不起作用,返回的结果包含匹配,但不包含任何突出显示:(
我猜你在找
client.Search<dynamic>(s => s
.Index('my index name')
.Type('my doc type name')
.From(page*PageSize)
.Size(PageSize)
.Query(q => q
.QueryString(qs => qs.Query('my query')))
.Highlight(h => h
.OnFields(f => f
.OnField("*")
.PreTags("<b style='color:black'>")
.PostTags("</b>")
)));
因为.OnAll()
表示.OnField("_all")
。
更新:对象初始值设定项语法(NEST 5.x)
var searchRequest = new SearchRequest
{
Query = ..
Highlight = new Highlight
{
PostTags = new[] {"<a>"},
PreTags = new[] {"</a>"},
Fields = new FluentDictionary<Field, IHighlightField>().Add("*", new HighlightField())
}
};
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.