我使用 Mpdreamz/NEST 作为 .net 客户端来搜索弹性搜索。
我正在使用result.Hits.Total
. 但我想知道如何从结果中显示字段的值。
我使用 Mpdreamz/NEST 作为 .net 客户端来搜索弹性搜索。
我正在使用result.Hits.Total
. 但我想知道如何从结果中显示字段的值。
查看 NEST 源代码,您似乎可以执行以下操作:
foreach (var item in result.Documents.ToList())
{
string msg = "Name: " + item.Name + " | Value: " + item.Text;
alert(msg);
}
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