Elasticsearch NEST highlights
本文关键字:highlights NEST Elasticsearch | 更新日期: 2023-09-27 18:13:41
我刚刚开始在c#项目中使用elasticsearch。我想在结果页面中突出显示搜索的关键词,但不知道如何处理它们的显示。
我的查询如下
result = client.Search<MyContentClass>(s => s
.Query(a =>
a.MatchPhrase(m => m.OnField("_all").Query(m_strSearchQuery))
.From(intFrom)
.Size(intSize)
.Highlight(h => h
.PreTags("<b style='color:orange'>")
.PostTags("</b>")
.OnFields(f => f
.OnField(e => e.Title)
.OnField(e => e.Content)
)
)
);
然后我将结果设置为一个变量,该变量是我的中继器的数据
var documents = result.Hits.Select(h => h.Source);
this.rptSearch.DataSource = documents;
this.rptSearch.DataBind();
this.rptSearch.Visible = true;
我在搜索结果中没有看到任何高亮显示的术语,也没有看到在高亮显示标签中包装的术语…
我做错了什么?
亮点存储在Hit
对象的Hightlights
属性中。
你可以这样访问它们:
result.Hits.Select(h => h.Highlights.Values.Select(v => string.Join(", ", v.Highlights)))
希望能有所帮助。