2015-08-24 2 views
2

Запустил запрос и получил результат в плагине чудес, как вы видите на картинке: enter image description here.запрос elasticsearch с ajax

И я хочу, чтобы это в моем веб-приложение с помощью Ajax запроса вот мой кусок кода

var query = "{'query': {'wildcard': {'heroname': {'value': '*dr*'}}}}"; 

           $.ajax({ 
            url: "http://localhost:9200/dota2/_search?" + query, 
            dataType: "json", 
            type: "GET", 
            success: function (data) { 
             debugger 
             alert("Success do your stuff!"); 
            }, 
            error: function (a, b, c) { 
             debugger 
             alert("Server Internal Error!"); 
            } 
           }) 

Its в успехе, но возвращает много результатов .. я не могу найти Резон этого. но я копирую запрос был отправлен от клиента к упругим и вставьте его браузер, то здесь JSon данные в ответ приходит мой АЯКС успех: enter image description here

Я ожидаю, что только 1 данные JSON, как кажется, в Марвел плагин, но он возвращает меня все данные в индексе, поэтому я думаю, что шаблонный запрос игнорируется, но почему? или т. д.?

+0

В вашей URL, я могу видеть, у вас есть знак вопроса (то есть '? ') Дважды, один перед встраиваемым запросом и еще один до' pretty', так что вы можете попробовать еще раз с '& pretty' вместо '? pretty'? – Val

+0

Я отредактировал этот вопрос с вашими изменениями, но это просто обработанный формат ответа :) –

ответ

3

Если вы хотите передать свой поисковый запрос в строке запроса в вызове GET, вам необходимо передать его в поле source parameter.

$.ajax({ 
    url: "http://localhost:9200/dota2/_search?source=" + query, 
    ...          ^
               | 
            add source parameter here 
+0

it throws "SearchPhaseExecutionException" здесь полное исключение msg: { "error": "SearchPhaseExecutionException [Не удалось выполнить фазу [запрос], все осколки не пройдены ; shardFailures {[P9HfL6BpRW-S61IeDUJdPw] [dota2] [0]: SearchParseException [[dota2] [0]: from [-1], size [-1]: Parse Failure [Не удалось проанализировать исходный код [{'query': { «wildcard»: {'heroname': {'value': '* dr *'}}}}]]]; nested: JsonParseException [Неожиданный символ ('' '(код 39)): ожидал либо действительный символ имени (для некотируемого имени) или двойную кавычку (для цитирования) для начала поля –

+0

Должен ли я удалять символы из строки запроса? –

+3

Да, потому что вам нужно использовать двойные кавычки с экранированием в вашей строке JSON, а не одинарные кавычки. – Val

Смежные вопросы