Elasticsearch查询Java代码实现
时间: 2023-10-04 12:14:12 浏览: 107
以下是一个简单的 Elasticsearch 查询 Java 代码示例:
```java
import org.elasticsearch.action.search.SearchRequest;
import org.elasticsearch.action.search.SearchResponse;
import org.elasticsearch.client.RequestOptions;
import org.elasticsearch.client.RestHighLevelClient;
import org.elasticsearch.common.unit.TimeValue;
import org.elasticsearch.index.query.QueryBuilders;
import org.elasticsearch.search.SearchHit;
import org.elasticsearch.search.builder.SearchSourceBuilder;
import java.io.IOException;
import java.util.concurrent.TimeUnit;
public class ElasticsearchQueryExample {
public static void main(String[] args) throws IOException {
// 创建 Elasticsearch 客户端
RestHighLevelClient client = new RestHighLevelClient(
RestClient.builder(new HttpHost("localhost", 9200, "http")));
// 创建搜索请求
SearchRequest searchRequest = new SearchRequest("my-index");
// 创建搜索源构建器
SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
searchSourceBuilder.query(QueryBuilders.matchQuery("title", "Elasticsearch"));
searchSourceBuilder.from(0);
searchSourceBuilder.size(10);
searchSourceBuilder.timeout(new TimeValue(60, TimeUnit.SECONDS));
// 将搜索源构建器添加到搜索请求中
searchRequest.source(searchSourceBuilder);
// 执行搜索请求
SearchResponse searchResponse = client.search(searchRequest, RequestOptions.DEFAULT);
// 处理搜索结果
for (SearchHit hit : searchResponse.getHits().getHits()) {
System.out.println(hit.getSourceAsString());
}
// 关闭 Elasticsearch 客户端
client.close();
}
}
```
上面的代码通过 Elasticsearch Java 客户端执行了一个基本的搜索请求,其中:
- `RestHighLevelClient` 是 Elasticsearch Java 客户端的一个高级别别名,用于执行搜索请求。
- `SearchRequest` 是一个 Elasticsearch 搜索请求的 Java 类,用于设置搜索请求的索引名称、搜索条件等信息。
- `SearchSourceBuilder` 是一个搜索源构建器,用于构建 Elasticsearch 搜索请求的搜索条件。
- `QueryBuilders.matchQuery` 方法创建一个匹配查询条件,查询 `title` 字段中包含 `Elasticsearch` 字符串的文档。
- `searchSourceBuilder.from` 和 `searchSourceBuilder.size` 方法用于设置从搜索结果的第几个文档开始返回以及返回的文档数量。
- `searchSourceBuilder.timeout` 方法用于设置搜索请求的超时时间。
- `SearchResponse` 是 Elasticsearch 搜索请求的响应结果,包含搜索结果、搜索总数等信息。
- `SearchHit` 是 Elasticsearch 搜索请求的命中结果,包含文档 ID、文档得分、文档内容等信息。
阅读全文