2014-01-31 32 views
1

我用這個gem爲elasticsearch API
我想下面捲曲的語句轉換爲等效的API調用Elasticsearch寶石 - API調用格式

curl -X GET 'localhost:9200/_search?pretty=true' -d '{ 
    "size": 100, 
    "fields": [ 
    "@message", 
    "@timestamp" 
    ], 
    "query": { 
    "term": { 
     "@message": "drop" 
    } 
    } 
}' 

我嘗試了這些,但沒有得到預期的結果

Elasticsearch API

@esearch = Elasticsearch::Client.new log: true 
@data2 = @esearch.search q: { 
           term:{ 
           "@message" => "drop" 
           } 
          }, 
          size:'100', 
          fields:'["@message", "@timestamp"]' 

交通運輸API

client = Elasticsearch::Client.new 
@data = client.perform_request 'GET', '_search', { 
                :size=> 100, 
                :query=> { 
                 :term=> { 
                 "message"=> "drop" 
                 } 
                }, 
                { 
                 :fields=> [ 
                 '@message', 
                 '@timestamp' 
                 ] 
                } 
                } 

請幫

回答

1

你需要用所有這些參數在body元素:

@data2 = @esearch.search 
    body: { 
     query: {term:{"@message" => "drop"}}, 
     size:'100', 
     fields:'["@message", "@timestamp"] 
    } 
+0

感謝,正是語法我一直在尋找。 – Krishna

+0

另請參閱http://rubydoc.info/gems/elasticsearch-api/Elasticsearch/API/Actions#search-instance_method上的文檔和示例 – karmi