Iamは、elasticsearchを検索するための.netクライアントとしてMpdreamz/NESTを使用しています。
を使用して検索結果の結果数を取得していresult.Hits.Total
ます。しかし、結果からフィールドの値をどのように表示できるのか疑問に思っています。
Iamは、elasticsearchを検索するための.netクライアントとしてMpdreamz/NESTを使用しています。
を使用して検索結果の結果数を取得してい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(....)
タイプのプロパティを持つaaQueryResult<dynamic>
を返します次のようにループできます:Documents
IEnumerable<dynamic>
foreach(var d in result.Documents)
{
Console.WriteLine(d.title);
}
ここでの大文字と小文字の問題d.Title
により、RuntimeBinderExceptionが発生します。Elasticsearchフィールドが実際に「タイトル」と完全に一致しない限り
POCOにマップすることもできます
public class MyResult
{
public string Title { get; set; }
}
..。
var result = client.Search<MyResult>(....)
Documents
これで、IEnumerable<MyResult>
コンパイル時にプロパティが存在することが保証されます。
.Fields["field"]
ユーザー入力を処理している場合を除いて、アクセスする必要はありません。
result.Total
よりも優先されますresult.Hits.Total