2016-11-18 12 views
0

を照会:ElasticsearchのNESTのAPI - Elasticsearch上のC#のNESTのAPIを使用して右のインデックスに

var searchResults = client.Search<Product>(s => s 
       .Index(Constants.ElasticSearchIndex) 
       .Query(q => q 
        .Raw(jsonRequest) 
       ) 
      ); 

クエリは(/ sc_all /インデックス上で実行することになったが、それは/ sc_all /製品/インデックス上で実行されています存在しない -/product /は、T = product以降の検索のために追加されたように見える)。

私はこのように行う場合は、/製品が/、一定の値に置き換えられ、すなわち/ sc_all /製品/ =>/sc_all/constant_value /:

var searchResults = client.Search<Product>(s => s 
       .Index(Constants.ElasticSearchIndex) 
       .Type(Constants.ElasticSearchType) 
       .Query(q => q 
        .Raw(jsonRequest) 
       ) 
      ); 

ちょうど私ならば、私は何をすべき/ sc_all /と他に何も質問したくないのですか?

ありがとうございます!


JSON要求:

"{\" 濾過\ ":{\" クエリー\ ":{\" match_all \ ":{}}、\" フィルタ\ ":{\" 入れ子にされました\ "フィルター\":\ "フィルター\":\ "\":\ "products \ {\ "bool \":{\ "must \":[{\ "query \":{\ "query_string \":{\ "default_field \":\ "products.da.content \"、\ "query \ ":\" kildemoes \ "}}}]}}}}}}}、\" from \ ":0、\" size \ ":100"

答えて

1

すべてのタイプ.AllTypes()

あなたが複数の異なる種類をターゲットにする場合は返されるすべての文書がそう Productのインスタンスにデシリアライズすることを試みます、あなたは一般的に使用したい場合があることに注意して、次の要求

POST http://localhost:9200/sc_all/_search 
{ 
    "query": { "match_all": {} } 
} 

ベアを生成します

ベースタイプまたはdynamic、さらにはcovariant search resultsを利用してください。

+0

ありがとうございますが、私のJsonリクエストにはすでに「match_all」が含まれています。私は上記の質問にそれを加えました。 – Louisa

+0

@Louisa私はあなたが逃したと思います。検索リクエストの本文に '.AllTypes()'を指定すると、インデックス 'Constants.ElasticSearchIndex'のすべての型を検索します。私は 'jsonRequest'のためのサンプル値を追加しました。あなたが与えたコードはコンパイルされます。 –

+0

良い点。説明をありがとう。 – Louisa

関連する問題