[英]Ajax query format with Elasticsearch
我正在嘗試使用AJAX向我的elasticsearch索引發出發布請求。 cURL結果為:
[~]$ curl -XGET 'http://localhost:9200/firebase/_search?q=song:i%20am%20in'
{"took":172,"timed_out":false,"_shards":{"total":5,"successful":5,"failed":0},"hits":{"total":2,"max_score":0.82749283,"hits":[{"_index":"firebase","_type":"song","_id":"0001","_score":0.82749283,"_source":{"song":"i am in california","song_name":"hello","song_url":"https://s3.ap-south-1.amazonaws.com/songapp-dump/media/songs/Adele_-_Hello-_i_am_in_california.mp3"}},{"_index":"firebase","_type":"song","_id":"0002","_score":0.28582606,"_source":{"song":"i must have called a thousand times","song_name":"hello","song_url":"https://s3.ap-south-1.amazonaws.com/songapp-dump/media/songs/Adele_-_Hello-_i_must_have_called_a_thousand_times.mp3"}}]}}
瀏覽器結果是: 這也可以正常工作。 意味着已經創建了索引,並且cURL / GET可以獲取結果。
當我試圖讓AJAX請求執行相同操作時,我可能正在努力查詢格式。 我不知道。
Ajax.js
$(function() {
$('#message').keyup(function() {
// console.log(JSON.stringify());
var data = {
'song': $('#message').val()
};
console.log(JSON.stringify(data));
$.ajax({
type: "POST",
url: "http://localhost:9200/firebase/_search",
contentType: 'application/json',
// data: {
// 'q': $('#message').val()
// },
data: JSON.stringify(data),
success: searchSuccess,
dataType: 'jsonp'
});
});
});
基本上是400錯誤的請求錯誤。 我無法弄清楚我的查詢或創建Ajax請求的方式是否有問題。 為什么會有回調問題! 任何幫助,將不勝感激。 我已經在網上搜索了這個問題,並嘗試了各種組合。
將方法更改為GET
,將dateType更改為json
。 此外,querystring還需要q
參數。
var data = {
'q': 'song:' + $('#message').val()
};
$.ajax({
type: "GET",
url: "http://localhost:9200/firebase/_search",
contentType: 'application/json',
data: JSON.stringify(data),
success: searchSuccess,
dataType: 'json'
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.