2017-07-05 11 views
1

こんにちはElastic Searchを初めて使用しています。ElasticSearch.netとNESTを通じてクエリの基本を理解するための実験を行っています。 私はこの構文を使用してクエリを変換しようとしています:ElasticSearch.net NESTでクエリにワイルドカードインデックスを使用する

curl -XGET 'http://myserver.com:9200/myindexes-*/XY/_search/?size=1000&pretty=1' -d ' 
{ 
    "query": { 
    "bool": { 
     "filter": [ 
     { "match": { "LOGTYPE" : "XY" }}, 
     { "match": { "USER" : "mrossi" }}, 
     { "wildcard": { "DATA": "m.rossi*" }}, 
     { "match": { "CODE" : "WZ" }}, 
     { "range": { "timestamp": { "gte": "2015-05-02" }}} 
     ] 
    }  
    } 
} 
' 

私は、(それを掲示した者に感謝を)複数のフィールドクエリを構築する方法を見つけたが、私はまだ作成する方法を理解する必要がありますクエリのワイルドカードインデックス。 Elastic Searchエンジンに供給するチームは、各日付に何百万行ものデータ(ログファイル)が存在するため、MyIndexes-YYYYMMDDという形式でインデックスを作成しました。インデックス名にワイルドカードを書くのが簡単な場合や、別のものを行う必要がある場合は、複数のインデックスを照会する方法がまだ見つかりませんでした。 手がかりがある場合は、事前にありがとうございます。私はいくつかのテストを試してみたと弾性検索への呼び出しは、私は問題を抱えている場合、私は理解できないんだけど、結果を読んで成功するように思われる場合でも:答えのいくつかのテストを受けた後に編集


私の質問またはデータがない場合。

Valid NEST response built from a successful low level call on POST: /myindex-%2A/ml/_search?pretty=true 
# Audit trail of this API call: 
- [1] HealthyResponse: Node: http://username:[email protected]:9200/ Took: 00:00:00.0580006 
# Request: 
{"size":1000,"query":{"bool":{"filter":[{"match":{"LOGTYPE":{"query":"XY"}}}]}}} 
# Response: 
{ 
    "took" : 31, 
    "timed_out" : false, 
    "_shards" : { 
    "total" : 270, 
    "successful" : 270, 
    "failed" : 0 
    }, 
    "hits" : { 
    "total" : 0, 
    "max_score" : null, 
    "hits" : [ ] 
    } 
} 

上記のデータは、応答のDebugInformationからわかります。私の不確実性はPOSTコマンドの作り方と関連しています。実際には、エンティティの名前がXYの大文字の場合、小文字で表示され、pretty変数の値は1ではなくtrueです。最初のメッセージに投稿したサンプルのように、POSTの変数ではありません。 私はフィルタを1つだけ設定するためにフィルタを単純化しましたが、リクエストデータにもサンプルにあるように "XY"フィルタにはクエリがありません。 その時点では、クエリは正しいと思われますが、インデックスデータが正しいかどうかはわかりません。 私はあなたのデータを見つけることができるかどうかを確認するために私のテーブルから選択トップ100 *のような何かを試して、使用する方法を提案することができますし、フィルタを試して実装しますか? ありがとうございました

答えて

2

クエリのインデックス名部分にワイルドカードを使用できます。

var client = new ElasticClient(); 

client.Search<MyObject>(s=>s 
    .Index("myindexes-*") 
    ... 
) 
+0

私はあなたの提案を試みましたが、星の文字は%2Aとしてエンコードされています。応答が要求はOKだと言われていますが、データは返されていないため、私のフィルタまたは実際には正しいインデックスが見つからないためです。私はいくつかのテストを試してみて、とにかく答えてくれてありがとう –

0

インデックスでワイルドカードを使用できるはずです...クエリが機能していませんか?

関連する問題