[英]C# NEST ElasticSearch search and highlight all fields in all types
我是彈性堆棧的新手,想在我的索引模型上實現全局搜索,這是我目前想到的:
var response = _client.Search<IndexBase>(s => s
.Type(Types.Type(typeof(A), typeof(B)))
.Query(qry => qry
.Bool(b => b
.Must(m => m
.QueryString(qs => qs
.DefaultField("_all")
.Query(request.Query)))))
.Highlight(h =>
h.Fields(f => f.Field("_all")))
但是我的文檔點擊率中沒有亮點。 我在做什么錯? 如何檢索[索引,計數]對以突出顯示?
嘗試用*替換熒光筆中的“ _all”
var response = _client.Search<IndexBase>(s => s
.Type(Types.Type(typeof(A), typeof(B)))
.Query(qry => qry
.Bool(b => b
.Must(m => m
.QueryString(qs => qs
.DefaultField("_all")
.Query(request.Query)))))
.Highlight(h =>
h.Fields(f => f.Field("*")))
您沒有正確索引字段。
為了執行突出顯示,需要該字段的實際內容。 如果存儲了有問題的字段(在映射中將store設置為true),則將使用該字段,否則,將加載實際的_source並從中提取相關的字段。
不能從_source提取_all字段,因此,如果它映射為將store設置為true,則只能用於突出顯示。 資源
同樣,對於任何更大的數據集,這都可能導致性能下降,因此始終最好以正確的方式設置搜索字段並知道要突出顯示的內容。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.