【发布时间】:2015-05-03 22:32:57
【问题描述】:
我正在尝试使用 NEST 客户端在索引中仅选择具有 >100 个字段的搜索中的特定字段。 搜索按预期返回 10K 结果,但是当循环命中字段值时,字典为空(我在调试器中看到它)。 下面是代码:
var elastic = new ElasticClient(new ConnectionSettings(defaultIndex: "customer"));
var result = elastic.Search<Customer>(s => s.Fields(new[] { "AccountNumber", "Folder" })
.From(0).Size(10000).SortDescending(c => c.DateAdded)
.Query(q => q.Term(c => c.Language, "english")));
foreach (var res in result.Hits)
{
Console.WriteLine(res.Fields.FieldValues<Customer, int>(c => c.AccountNumber).First() +
" " + res.Fields.FieldValues<Customer, int>(c => c.Folder).First());
}
Console.WriteLine("Query Elapsed MS: {0}", result.ElapsedMilliseconds);
在没有字段过滤器和迭代文档的情况下进行相同的搜索可以正常工作。
更新:在没有字段过滤器的情况下进行搜索并遍历 hits fields 属性时也为空。
【问题讨论】:
-
可以分享地图吗?
-
[ElasticType(IdProperty = "AccountNumber")] 公共类 Customer {
标签: elasticsearch nest