蔭使用Mpdreamz/NEST作爲.NET客戶端用於搜索elasticsearch循環。通過elasticsearch QueryResult中使用Mpdreamz/NEST
我正在使用result.Hits.Total
搜索結果的結果計數。但我想知道如何從結果中顯示字段的值。
蔭使用Mpdreamz/NEST作爲.NET客戶端用於搜索elasticsearch循環。通過elasticsearch QueryResult中使用Mpdreamz/NEST
我正在使用result.Hits.Total
搜索結果的結果計數。但我想知道如何從結果中顯示字段的值。
var result = client.Search(....)
將與類型的Documents
財產返還AA QueryResult<dynamic>
IEnumerable<dynamic>
你也可以遍歷這個像這樣:
foreach(var d in result.Documents)
{
Console.WriteLine(d.title);
}
這裏的套管問題d.Title
將導致一個RuntimeBinderException。除非你elasticsearch字段實際上正是「Title`匹配
您也可以映射到POCO的
public class MyResult
{
public string Title { get; set; }
}
...
var result = client.Search<MyResult>(....)
現在Documents
是IEnumerable<MyResult>
,這將給你的編譯時間保證財產的存在。
你不應該訪問.Fields["field"]
,除非你正在處理用戶輸入。
result.Total
也優於result.Hits.Total
看着NEST源代碼,似乎你可以這樣做:
foreach (var item in result.Documents.ToList())
{
string msg = "Name: " + item.Name + " | Value: " + item.Text;
alert(msg);
}
感謝快速回復..我試過這個,但我想從結果中顯示單個字段的值,例如「title」。 VAR結果= client.Search(S =>取值 的.index( 「algotest」)... \t .MatchAll() );這是我的搜索查詢。 – user1618820
我修改了我的代碼示例。它現在工作嗎? –
EXCEPTION:Microsoft.CSharp.RuntimeBinder.RuntimeBinderException:無法在CallSite.Target(Closure,CallSite,Object,String)上的空引用 上運行時綁定。 CallSite站點,T0 arg0,T1 arg1) 使用字符串Title = res.Fields [「title」]; – user1618820
請給答案http://stackoverflow.com/questions/26624786/display-elastic-search-hits-values-using-nest – BasK