用java代码实现一个es通用的查询
时间: 2023-12-10 15:36:55 浏览: 76
以下是一个 Java 代码示例,用于执行一个简单的 Elasticsearch 查询:
```java
import org.elasticsearch.action.search.SearchRequest;
import org.elasticsearch.action.search.SearchResponse;
import org.elasticsearch.client.RestHighLevelClient;
import org.elasticsearch.common.unit.TimeValue;
import org.elasticsearch.index.query.QueryBuilders;
import org.elasticsearch.search.builder.SearchSourceBuilder;
import org.elasticsearch.search.sort.SortOrder;
import java.io.IOException;
public class ElasticsearchQuery {
public static void main(String[] args) throws IOException {
// 创建 Elasticsearch 客户端
RestHighLevelClient client = createClient();
// 创建搜索请求对象
SearchRequest searchRequest = new SearchRequest("my_index");
// 构建搜索参数
SearchSourceBuilder sourceBuilder = new SearchSourceBuilder();
sourceBuilder.query(QueryBuilders.matchQuery("title", "java"));
sourceBuilder.sort("publish_date", SortOrder.DESC);
sourceBuilder.size(10);
sourceBuilder.timeout(TimeValue.timeValueSeconds(5));
searchRequest.source(sourceBuilder);
// 执行搜索请求
SearchResponse searchResponse = client.search(searchRequest, RequestOptions.DEFAULT);
// 输出结果
System.out.println(searchResponse.toString());
// 关闭 Elasticsearch 客户端
client.close();
}
private static RestHighLevelClient createClient() {
// TODO: 创建 Elasticsearch 客户端并返回
}
}
```
在上面的代码中,我们创建了一个 Elasticsearch 客户端,并使用 `matchQuery` 方法构建了一个匹配查询,并按 `publish_date` 字段进行降序排序,并限制结果集大小为 10 条,并设置了超时时间为 5 秒。最后,我们执行了搜索请求,并输出了结果。
需要注意的是,上面的代码中的 `createClient` 方法需要根据具体的 Elasticsearch 集群进行实现。
阅读全文