2011-08-12 63 views
9

任何人都知道通過HTTP GET將JSON查詢發送到ElasticSearch服務器的方法嗎?我知道你可以將JSON內容發佈到_search,但POST不可用,因爲這是跨域的。例如,如果我的查詢是這樣的:通過GET使用JSON搜索ElasticSearch

{ 
    "query": { 
     "query_string": { 
      "fields": ["name", "description"], 
      "query": "Elastic Search" 
     } 
    } 
} 

哪個我會轉換爲類似:

{"query":{"query_string":{"fields":["name","description"],"query":"Elastic Search"}}} 

有沒有辦法來GET服務器:9200 /指數/類型/ _search內容= stringifiedquery或類似的東西?我試過q =content =以及剛通過之後的內容?但似乎沒有工作。有人有主意嗎?或者我只是運氣不好?

+0

什麼語言發起請求? –

+0

語言很可能是javascript(帶有jquery) - 真的很難強制jquery發送帶有帖子主體的GET請求 – DrTech

回答

12

您可以使用source查詢字符串參數來發送通常是帖子正文的內容。

看到這個頁面的底部:http://www.elasticsearch.org/guide/reference/api/

+0

將源使用作爲鍵值也適用於POST請求嗎?我問,因爲我試圖使用RestKit(對於json req/resp的ObjC框架),並且它傾向於要求附加到發送到ElasticSearch實例的發佈請求參數的json數據(值)的鍵值對。 – pulkitsinghal

+1

是的,它會工作 – DrTech

+0

這太棒了。我注意到這個參數沒有記錄在這裏:https://www.elastic.co/guide/en/elasticsearch/reference/1.5/search-uri-request.html有誰知道這是否是一個棄用的功能,最終會停止在未來的版本中工作?它似乎在ES 1.5.2中按預期工作。 –