1

我使用 Mpdreamz/NEST 作为 .net 客户端来搜索弹性搜索。

我正在使用result.Hits.Total. 但我想知道如何从结果中显示字段的值。

4

2 回答 2

0

查看 NEST 源代码,您似乎可以执行以下操作:

foreach (var item in result.Documents.ToList())
{
    string msg = "Name: " + item.Name + " | Value: " + item.Text;
    alert(msg);
}
于 2012-08-23T06:52:48.723 回答
0

var result = client.Search(....)

QueryResult<dynamic>将返回带有Documents类型属性的aaIEnumerable<dynamic>您可以像这样循环:

foreach(var d in result.Documents)
{
    Console.WriteLine(d.title);
}

这里的大小写问题d.Title将导致 RuntimeBinderException。除非您的弹性搜索字段实际上完全匹配“标题”

您还可以映射到 POCO 的

public class MyResult
{
    public string Title { get; set; }
}

...

var result = client.Search<MyResult>(....)

现在Documents是一个IEnumerable<MyResult>将为您提供编译时间保证属性存在的方法。

.Fields["field"]除非您正在处理用户输入,否则您不必访问。

result.Total也优于result.Hits.Total

于 2012-09-08T15:31:22.910 回答