:、私は一致しようとしている代わりにElasticsearch QueryBuilder一致する複数の利用規約次の形式でES指数でJSONを考える
client.prepareSearch("index_name")
.setTypes("pin")
.setQuery(QueryBuilders.termQuery("id", 123))
.execute()
.actionGet();
:
{
"pin": {
"id": 123,
"location": {
"lat": 456,
"lon":-789
}
}
}
次はid
フィールドに一致する文書を取得します複数のフィールド、すなわち。 (location.lat
,location.lon
)。例えば、
QueryBuilders.termQuery(); // accepts only a single term
は、いくつかの選択肢を試みたが、それがどれも動いていないようにみえ:
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();
のQueryBuilders.multiMatchQueryを使用することができますがgeo_pointとしてインデックスの場所ですか? – imotov
はい、 'geo_point'としてマップされます。 – ahmedyha