2016-09-29 22 views
0

elasticsearchクエリをGETリクエストとして実行して、作成したインデックスからデータを取得しようとしています。インデックスにあるデータはMySQL DBのテーブルで、logstashが設定されています。ここで私はelasticsearchクエリ内でMySQL sum()とgroup by clauseをどのように持つことができますか?

は、IN句のない私の要求です:上記で

http://localhost:9200/response_summary/_search?q=api:"location"+AND+transactionoperationstatus:"charged"+AND+operatorid='DIALOG'+AND+userid:test+AND+time:"2015-05-27"

、私はsum(chargeAmount+0) & group byを追加することができるはずです。私はそれをウェブ上で検索しようとしましたが、解決策を見つけることができませんでした。

助けが必要でした。あなたが希望の和を計算するquery_stringと使用集計を活用するためにクエリを書き直すことができますので、あなたのクエリでq=...は、query_string queryと同じ構文を使用した後、あなたが入れたものは何でも

答えて

1

:ポストマンで

curl -XPOST http://localhost:9200/response_summary/_search -d '{ 
    "query": { 
     "query_string": { 
      "query": "api:\"location\" AND transactionoperationstatus:\"charged\" AND operatorid:\"DIALOG\" AND userid:test AND time:\"2015-05-27\" AND responseCode:(401 403)" 
     } 
    }, 
    "aggs": { 
     "total": { 
      "terms": { 
       "field": "chargeAmount" 
      }, 
      "aggs":{ 
      "total": { 
       "sum": { 
        "field": "chargeAmount" 
       } 
      } 
      } 
     } 
    } 
}' 

を、それを次のようになります。

enter image description here

+0

が、その後どのように私はつもり郵便配達か何かからこの 'curl'リクエストを投稿するのですか?私は 'postman'を使ってこのカールをインポートしようとしましたが、' invalid format'と言います。 – Kulasangar

+1

私は私の答えを更新しました – Val

+0

"aggs":{ "合計":{ "合計":{ "フィールド": "chargeAmount" } } } 何上記の合計を取得するためにそれをしません上記のカール要求から 'chargeAmount'?問題は、私のDBのフィールド(chargeAmount)は 'varchar'で、ここで' sum'は数値を期待していると思います。ではない ? – Kulasangar

関連する問題