Elasticsearch - 在 java 中输入查询
Elasticsearch - type a query in java
以下查询获取索引“geoshapes”中位置为 {32.0, 34.0} 的所有文档,我如何在 java 中执行相同的操作?
GET /geoshapes/_search
{
"query": {
"bool": {
"filter": {
"geo_shape": {
"coordinates": {
"relation": "contains",
"shape": {
"coordinates": [
32.0,
34.0
],
"type": "point"
}
}
}
},
"must": {
"match_all": {}
}
}
}
}
您需要向您的项目导入一个库,该库知道如何与 ElasticSearch 实例通信并以编程方式执行这些查询(即通过您的 Java 代码)。换句话说,您需要 Java 客户端。
看看:https://www.elastic.co/guide/en/elasticsearch/client/java-rest/7.13/index.html
将库导入项目后,您可以:
import org.elasticsearch.action.search.SearchRequest;
import org.elasticsearch.common.geo.ShapeRelation;
import org.elasticsearch.common.geo.builders.CoordinatesBuilder;
import org.elasticsearch.common.geo.builders.MultiPointBuilder;
import org.elasticsearch.index.query.BoolQueryBuilder;
import org.elasticsearch.index.query.GeoShapeQueryBuilder;
import org.elasticsearch.index.query.QueryBuilders;
import org.elasticsearch.search.builder.SearchSourceBuilder;
import static org.elasticsearch.index.query.QueryBuilders.geoShapeQuery;
import static org.elasticsearch.index.query.QueryBuilders.matchAllQuery;
BoolQueryBuilder query1 = QueryBuilders.boolQuery();
GeoShapeQueryBuilder qb = geoShapeQuery(
"location",
new MultiPointBuilder(
new CoordinatesBuilder()
.coordinate(32.0, 34.0)
.build()));
qb.relation(ShapeRelation.CONTAINS);
query1.filter(qb).must(matchAllQuery());
SearchRequest searchRequest = new SearchRequest("geoshapes");
SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
searchSourceBuilder.query(query1);
searchRequest.source(searchSourceBuilder);
Elastic 在客户端上有 documentation 对您有用。
以下查询获取索引“geoshapes”中位置为 {32.0, 34.0} 的所有文档,我如何在 java 中执行相同的操作?
GET /geoshapes/_search
{
"query": {
"bool": {
"filter": {
"geo_shape": {
"coordinates": {
"relation": "contains",
"shape": {
"coordinates": [
32.0,
34.0
],
"type": "point"
}
}
}
},
"must": {
"match_all": {}
}
}
}
}
您需要向您的项目导入一个库,该库知道如何与 ElasticSearch 实例通信并以编程方式执行这些查询(即通过您的 Java 代码)。换句话说,您需要 Java 客户端。
看看:https://www.elastic.co/guide/en/elasticsearch/client/java-rest/7.13/index.html
将库导入项目后,您可以:
import org.elasticsearch.action.search.SearchRequest;
import org.elasticsearch.common.geo.ShapeRelation;
import org.elasticsearch.common.geo.builders.CoordinatesBuilder;
import org.elasticsearch.common.geo.builders.MultiPointBuilder;
import org.elasticsearch.index.query.BoolQueryBuilder;
import org.elasticsearch.index.query.GeoShapeQueryBuilder;
import org.elasticsearch.index.query.QueryBuilders;
import org.elasticsearch.search.builder.SearchSourceBuilder;
import static org.elasticsearch.index.query.QueryBuilders.geoShapeQuery;
import static org.elasticsearch.index.query.QueryBuilders.matchAllQuery;
BoolQueryBuilder query1 = QueryBuilders.boolQuery();
GeoShapeQueryBuilder qb = geoShapeQuery(
"location",
new MultiPointBuilder(
new CoordinatesBuilder()
.coordinate(32.0, 34.0)
.build()));
qb.relation(ShapeRelation.CONTAINS);
query1.filter(qb).must(matchAllQuery());
SearchRequest searchRequest = new SearchRequest("geoshapes");
SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
searchSourceBuilder.query(query1);
searchRequest.source(searchSourceBuilder);
Elastic 在客户端上有 documentation 对您有用。