1

Iamは、elasticsearchを検索するための.netクライアントとしてMpdreamz/NESTを使用しています。

を使用して検索結果の結果数を取得してい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(....)

タイプのプロパティを持つaaQueryResult<dynamic>を返します次のようにループできます:DocumentsIEnumerable<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

于 2012-09-08T15:31:22.910 に答える