以下列格式给出ES索引中的JSON:
{
"pin": {
"id": 123,
"location": {
"lat": 456,
"lon":-789
}
}
}
Run Code Online (Sandbox Code Playgroud)
以下内容使文档与id字段匹配:
client.prepareSearch("index_name")
.setTypes("pin")
.setQuery(QueryBuilders.termQuery("id", 123))
.execute()
.actionGet();
Run Code Online (Sandbox Code Playgroud)
相反,我正在尝试匹配多个字段,即.(location.lat,location.lon).
QueryBuilders.termQuery(); // accepts only a single term
Run Code Online (Sandbox Code Playgroud)
尝试了一些替代品,但似乎没有任何替代方案,例如:
QueryBuilder queryBuilder = QueryBuilders.boolQuery()
.must(QueryBuilders.termQuery("location.lat", 456))
.must(QueryBuilders.termQuery("location.lon", -789));
client.prepareSearch("index_name")
.setTypes("pin")
.setQuery(queryBuilder)
.execute()
.actionGet();
Run Code Online (Sandbox Code Playgroud)