Фильтрация неисправностей в результате упругого поиска с использованием Ajax
Я использую Amplify для выполнения моих Ajax-вызовов на asticsearch, однако у меня возникают проблемы с фильтрацией моих результатов. Поскольку я передаю все как URL, я не уверен, как его отформатировать. Следующее возвращает 4 результата, когда я передаю firstName:John как searchCriteria.
self.url = "http://leServer:lePort/people/person/_search?q=" + self.searchCriteria;
Если у меня есть firstName:John&lastName:Smith, он возвращает 6 результатов, потому что есть 2 записи кузнеца с именем, отличным от John.
Если я запускаю следующую команду из моей командной строки, я получаю один ожидаемый результат.
curl -XGET "http://leServer:lePort/people/person/_search?pretty=true" -d "{
\"query\": {
\"filtered\": {
\"query\": {
\"text\": {
\"firstName\": \"John\"
}
},
\"filter\": {
\"query\": {
\"text\": {
\"lastName\": \"Smith\"
}
}
}
}
}
}"
Я попытался использовать следующее как мой вызов Ajax, но он ничего не возвращает. Я также пытался с \"
что запрос керли имел.
self.url = "http://leServer:lePort/people/person/_search?" +"-d"+"{query:{filtered:{query:{text:{firstName:John}},filter:{query:{text:{lastName:Smith}}}}}}"
1 ответ
Запрос должен быть закодирован в URL +firstName:John +lastName:Smith
, Кстати, это может быть плохой идеей, чтобы выставить ваш сервер Fl exibl esearch для внешнего мира.