Elasticsearch查询显示错误的结果

时间:2016-01-18 10:12:15

标签: php elasticsearch elasticsearch-jdbc-river

我使用下面的查询来获取php中的弹性搜索结果。

// REQUEST 
OPTIONS /mohsenin/loans HTTP/1.1
Host: mohsenin.app
Connection: keep-alive
Access-Control-Request-Method: GET
Origin: http://mclient.app
User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36     (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36
Access-Control-Request-Headers: accept, authorization, crossorigin
Accept: */*
Referer: http://mclient.app/
Accept-Encoding: gzip, deflate, sdch
Accept-Language: en-US,en;q=0.8,fa;q=0.6

// RESPONSE
HTTP/1.1 200 OK
Server: nginx/1.9.3 (Ubuntu)
Content-Type: text/html; charset=UTF-8
Transfer-Encoding: chunked
Connection: keep-alive
Allow: GET,HEAD
Cache-Control: no-cache, private
date: Mon, 18 Jan 2016 09:54:44 GMT
access-control-allow-origin: http://mclient.app
Vary: Origin
access-control-allow-credentials: true
access-control-allow-methods: GET, POST, PUT, DELETE
access-control-allow-headers: ACCEPT, AUTHORIZATION, CROSSORIGIN
Content-Encoding: gzip

何时使用上述代码,它将获取无与伦比的结果。该查询是否有任何错误。

1 个答案:

答案 0 :(得分:1)

您好像在同一个字段et_tax上查询两次。在第一种情况下,术语"农业"存在,然后再次出现"农业"不存在(-et_tax:)。我希望这可以归还所有文件,因为术语"农业"字段et_tax中存在或不存在,query_string的默认运算符为OR

查看query_string的{​​{3}}。您可以将default_operator改为AND

此外,我建议您从搜索值中删除双引号,假设它们不是您要搜索的字词的一部分。

最后,我在地图中看不到q字段。我不认为" q ="在您的查询中正如您所期望的那样工作。您可能需要将其删除并指定要查询的default_field

希望这会有所帮助......