[英]Display elastic search hits values using NEST
我正在使用以下代码搜索articleid和控件字段。 它将保存2个字段的值。 但是我无法访问这两个字段的值。 在这里search <>是动态的。
var searchrange = _client.Search<dynamic>(s => s
.Indices("kb_v2").Types("kb")
.From(0).Size(10)
.Fields("articleid","control")
.Query(q => q
.Range(r =>r
.OnField("articleid")
.Greater("2")
.Lower("5"))));
您能解释一下如何获取这两个字段的值吗?
由于Elasticsearch 1.0字段始终以Dictionary<string, object[]>
返回,因此可以在NEST中访问它们,因此可以使用:
foreach (var doc in queryResults.FieldSelections)
{
var articleIds = doc.FieldValues<int[]>("articleid");
}
有关语法的更多详细信息,请参见此PR 。
搜索响应( ISearchResponse
类型)具有FieldSelections属性,该属性保存结果和详细信息。 使用较旧的Nest版本,必须遍历Hits属性才能找到每个字段的值。
"hits": [
{
"_index": "kb_v2",
"_type": "kb",
"_id": "3565178",
"_score": 1,
"fields": {
"articleid": [
"3"
]
}
},
{
"_index": "kb_v2",
"_type": "kb",
"_id": "3932480",
"_score": 1,
"fields": {
"articleid": [
"4"
]
}
}]
更多关于如何使用ElastichSearch.net客户端FieldSelections在这个单元测试中提到这里
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.