三种高亮类型
ES提供了三种高亮类型,unified highlighter, plain highlighter, fvh highlighter(fast vector highlighter)
unified highlighter:默认unified.unified highlighter使用Lucene的统一highlighter。这个突出显示器将文本分成句子,并使用BM25算法对单个句子进行评分.
plain highlighter:一般情况下,用plain highlight也就足够了,不需要做其他额外的设置
fvh highlighter:fast vector highlighter,如果field的值特别大,超过了1M,那么可以用fast vector highlight。
fragment_size:举个例子 你一个Field的值,比如有长度是1万,但是你不可能在页面上显示这么。。设置要显示出来的fragment文本判断的长度,默认是100
number_of_fragments:你可能你的高亮的fragment文本片段有多个片段,你可以指定就显示几个片段
Table of Contents
Elastic.Clients.Elasticsearch 9.18
using Elastic.Clients.Elasticsearch.Core.Search;
var highlight3 = new Highlight()
{
PreTags = ["<mark>"],
PostTags = ["</mark>"],
Encoder = HighlighterEncoder.Html,
Fields = new Dictionary<Field, HighlightField>
{
{ new Field("title"), new HighlightField() { PreTags = ["<mark>"], PostTags = ["</mark>"] }},
{ new Field("body"), new HighlightField() { PreTags = ["<mark>"], PostTags = ["</mark>"] }},
},
};
var searchResponse = await client.SearchAsync<MyDocument>(s => s
.Query(q => q
.Match(m => m
.Field(f => f.Title)
.Query("elasticsearch")
)
)
.Highlight(h => highlight)
);