我尝试使用下面的代码从搜索中获取精彩内容。尽管尝试了各种各样的事情,结果上的Highlights集合总是空的。
使用ElasticSearch服务器2.3.1和NEST 2.3.0。
results = _client.Search<dynamic>( d =>
d.AllIndices()
.AllTypes()
.Query( q => q.QueryString( s => s.Query( query ) ) )
.Highlight(h =>
h.Fields( f =>
f.Field( "*" ).PreTags("<em>").PostTags("</em>")
)
)
);
答案 0 :(得分:0)
根据我的经验,要让荧光笔通过*字段请求返回数据,您还需要在其自己的突出显示查询中提供查询的副本。
请原谅原生格式,但这里有一个例子,它将从*字段模式中产生高光:
"fields": {
"*": {
"highlight_query": {
"query_string": {
"query": "same as string query value"
}
}
}
}
答案 1 :(得分:0)
我想这是因为你正在使用查询字符串。您正在查询多个字段,您可以将其更改为MultipleMatch,或者如果您只是查询1个字段,则可以使用Match。请注意特殊字符。假设你在Field1上查询,但查询关键字(搜索关键字)就像这个字段2:“你的关键字在这里”我不认为你可以有任何亮点。或者你可能得到了错误的结果。< / p>