我正在使用 Amplify 对 elasticsearch 进行 Ajax 调用,但是在过滤结果时遇到问题。由于我将所有内容都作为 URL 传递,因此我不确定如何格式化它。当我通过 firstName:John 作为 searchCriteria 时,以下返回 4 个结果。
self.url = "http://leServer:lePort/people/person/_search?q=" + self.searchCriteria;
如果我有 firstName:John&lastName:Smith,它会返回 6 个结果,因为有 2 个 smith 记录的名字不是 John。
如果我从命令提示符运行以下命令,我会得到一个预期的结果。
curl -XGET "http://leServer:lePort/people/person/_search?pretty=true" -d "{
\"query\": {
\"filtered\": {
\"query\": {
\"text\": {
\"firstName\": \"John\"
}
},
\"filter\": {
\"query\": {
\"text\": {
\"lastName\": \"Smith\"
}
}
}
}
}
}"
我尝试使用以下作为我的 Ajax 调用,但它不返回任何内容。我还尝试\"
了 curl 请求所具有的。
self.url = "http://leServer:lePort/people/person/_search?" +"-d"+"{query:{filtered:{query:{text:{firstName:John}},filter:{query:{text:{lastName:Smith}}}}}}"