我正在尝试执行如下所示的基于URI的查询。但我没有看到我传递的搜索参数的任何影响。而且我想禁用_source = false。你能帮我查询一下吗?我正在使用Java来使用Java.net包执行相同的操作。无论我传递什么搜索参数,此查询都会返回所有内容。
URI:“http://localhost:9200/twitter/twitter/_search?updatedBy=XX&node=YY”
Java代码:
String charset = "UTF-8";
String updatedBy = "XX";
String node = "YY";
String query = String.format("updatedBy:%s&nodeId:%s",
URLEncoder.encode(updatedBy, charset),
URLEncoder.encode(nodeId, charset));
System.out.println(searchEsUrl + "?q=" + query);
URLConnection connection = new URL(searchEsUrl + "?q=" + query).openConnection();
connection.setRequestProperty("Accept-Charset", charset);
答案 0 :(得分:1)
试试这个
String query = String.format("updatedBy:%s+AND+nodeId:%s",
URLEncoder.encode(updatedBy, charset),
URLEncoder.encode(nodeId, charset));
URLConnection connection = new URL(searchEsUrl + "?_source=false&q=" + query).openConnection();
问题在于q=
参数中发送的内容需要遵循查询字符串查询syntax rules,并且使用AND
运算符而不是&
来对两个约束进行AND运算这个:updatedBy:XX AND nodeId:YY
您要构建的URI是:
"http://localhost:9200/twitter/twitter/_search?q=updatedBy:XX AND nodeId:YY"