目录
- <properties>
- <maven.compiler.source>8maven.compiler.source>
- <maven.compiler.target>8maven.compiler.target>
- properties>
-
- <dependencies>
- <dependency>
- <groupId>org.elasticsearchgroupId>
- <artifactId>elasticsearchartifactId>
- <version>7.8.0version>
- dependency>
-
- <dependency>
- <groupId>org.elasticsearch.clientgroupId>
- <artifactId>elasticsearch-rest-high-level-clientartifactId>
- <version>7.8.0version>
- dependency>
-
- <dependency>
- <groupId>org.apache.logging.log4jgroupId>
- <artifactId>log4j-apiartifactId>
- <version>2.17.1version>
- dependency>
- <dependency>
- <groupId>org.apache.logging.log4jgroupId>
- <artifactId>log4j-coreartifactId>
- <version>2.17.1version>
- dependency>
- <dependency>
- <groupId>com.fasterxml.jackson.coregroupId>
- <artifactId>jackson-databindartifactId>
- <version>2.13.3version>
- dependency>
-
- <dependency>
- <groupId>junitgroupId>
- <artifactId>junitartifactId>
- <version>4.13.2version>
- <scope>testscope>
- dependency>
- dependencies>
先通过ApiPost测试访问

可以看到运行代码之前customer文档索引是不存在的
代码:
- package com.dragon.test;
-
- import org.apache.http.HttpHost;
- import org.elasticsearch.client.RequestOptions;
- import org.elasticsearch.client.RestClient;
- import org.elasticsearch.client.RestHighLevelClient;
- import org.elasticsearch.client.indices.CreateIndexRequest;
- import org.elasticsearch.client.indices.CreateIndexResponse;
-
- /**
- * @author DragonWu
- * @date 2022-09-17 18:54
- **/
- public class ElkTestIndexCreate {
- public static void main(String[] args) throws Exception{
- //创建ES客户端
- RestHighLevelClient esClient=new RestHighLevelClient(
- RestClient.builder(new HttpHost("localhost",9200,"http"))
- );
-
- //创建索引
- CreateIndexRequest request = new CreateIndexRequest("customer");
- CreateIndexResponse createIndexResponse = esClient.indices().create(request, RequestOptions.DEFAULT);
-
- //响应状态
- boolean acknowledged = createIndexResponse.isAcknowledged();
- System.out.println("索引操作:"+acknowledged);
-
- //关闭ES客户端
- esClient.close();
- }
- }

再次查询,可以查询到对应文档索引了,证明代码执行成功

索引创建成功
- package com.dragon.test;
-
- import org.apache.http.HttpHost;
- import org.elasticsearch.client.RequestOptions;
- import org.elasticsearch.client.RestClient;
- import org.elasticsearch.client.RestHighLevelClient;
- import org.elasticsearch.client.indices.GetIndexRequest;
- import org.elasticsearch.client.indices.GetIndexResponse;
-
- /**
- * @author DragonWu
- * @date 2022-09-18 9:16
- **/
- public class ElkTestIndexSearch {
- public static void main(String[] args) throws Exception{
- //创建ES客户端
- RestHighLevelClient esClient=new RestHighLevelClient(
- RestClient.builder(new HttpHost("localhost",9200,"http"))
- );
-
- //查询索引
- GetIndexRequest request=new GetIndexRequest("customer");
-
- GetIndexResponse getIndexResponse = esClient.indices().get(request, RequestOptions.DEFAULT);
-
- //响应状态
- System.out.println(getIndexResponse.getAliases());
- System.out.println(getIndexResponse.getMappings());
- System.out.println(getIndexResponse.getSettings());
-
- //关闭ES客户端
- esClient.close();
- }
- }
运行截图

可以看到该索引已被找到。
- package com.dragon.test;
-
- import org.apache.http.HttpHost;
- import org.elasticsearch.action.admin.indices.delete.DeleteIndexRequest;
- import org.elasticsearch.action.support.master.AcknowledgedResponse;
- import org.elasticsearch.client.RequestOptions;
- import org.elasticsearch.client.RestClient;
- import org.elasticsearch.client.RestHighLevelClient;
-
- /**
- * @author DragonWu
- * @date 2022-09-18 9:25
- **/
- public class ElkTestIndexDelete {
- public static void main(String[] args) throws Exception{
- //创建ES客户端
- RestHighLevelClient esClient=new RestHighLevelClient(
- RestClient.builder(new HttpHost("localhost",9200,"http"))
- );
-
- //查询索引
- DeleteIndexRequest request=new DeleteIndexRequest("customer");
-
- AcknowledgedResponse response = esClient.indices().delete(request, RequestOptions.DEFAULT);
-
- //响应状态
- System.out.println(response.isAcknowledged());
-
- //关闭ES客户端
- esClient.close();
- }
- }
运行截图

删除成功
首先创建实体类
- package com.dragon.test;
-
- /**
- * @author DragonWu
- * @date 2022-09-18 9:32
- **/
- public class User {
- private String name;
- private String sex;
- private Integer age;
-
- public String getName() {
- return name;
- }
-
- public void setName(String name) {
- this.name = name;
- }
-
- public String getSex() {
- return sex;
- }
-
- public void setSex(String sex) {
- this.sex = sex;
- }
-
- public Integer getAge() {
- return age;
- }
-
- public void setAge(Integer age) {
- this.age = age;
- }
- }
- package com.dragon.test;
-
- import com.fasterxml.jackson.databind.ObjectMapper;
- import org.apache.http.HttpHost;
- import org.elasticsearch.action.index.IndexRequest;
- import org.elasticsearch.action.index.IndexResponse;
- import org.elasticsearch.client.RequestOptions;
- import org.elasticsearch.client.RestClient;
- import org.elasticsearch.client.RestHighLevelClient;
- import org.elasticsearch.common.xcontent.XContentType;
-
- /**
- * @author DragonWu
- * @date 2022-09-18 9:34
- **/
- public class ElkTestDocInsert {
- public static void main(String[] args) throws Exception{
- //创建ES客户端
- RestHighLevelClient esClient=new RestHighLevelClient(
- RestClient.builder(new HttpHost("localhost",9200,"http"))
- );
-
- //插入数据
- IndexRequest request=new IndexRequest();
- request.index("user").id("1004");
-
- User user=new User();
- user.setName("张三");
- user.setAge(21);
- user.setSex("男");
-
- //向ES中插入数据,必须将数据转换为JSON格式
- ObjectMapper mapper=new ObjectMapper();
- String userJson = mapper.writeValueAsString(user);
- request.source(userJson, XContentType.JSON);
-
- IndexResponse response = esClient.index(request, RequestOptions.DEFAULT);
-
- // System.out.println(response.getResult());
-
- //关闭ES客户端
- esClient.close();
- }
- }
通过ApiPost查询数据:

可以看到数据已经更新
- package com.dragon.test;
-
- import org.apache.http.HttpHost;
- import org.elasticsearch.action.update.UpdateRequest;
- import org.elasticsearch.action.update.UpdateResponse;
- import org.elasticsearch.client.RequestOptions;
- import org.elasticsearch.client.RestClient;
- import org.elasticsearch.client.RestHighLevelClient;
- import org.elasticsearch.common.xcontent.XContentType;
-
- /**
- * @author DragonWu
- * @date 2022-09-18 9:34
- **/
- public class ElkTestDocUpdate {
- public static void main(String[] args) throws Exception{
- //创建ES客户端
- RestHighLevelClient esClient=new RestHighLevelClient(
- RestClient.builder(new HttpHost("localhost",9200,"http"))
- );
-
- //修改数据
- UpdateRequest request=new UpdateRequest();
- request.index("user").id("1004");
- request.doc(XContentType.JSON,"sex","女");
-
- UpdateResponse response = esClient.update(request, RequestOptions.DEFAULT);
-
- System.out.println(response.getResult());
-
- //关闭ES客户端
- esClient.close();
- }
- }
再次查询user的id为1004的文档

可以看到sex已局部更新
- package com.dragon.test;
-
- import org.apache.http.HttpHost;
- import org.elasticsearch.action.get.GetRequest;
- import org.elasticsearch.action.get.GetResponse;
- import org.elasticsearch.client.RequestOptions;
- import org.elasticsearch.client.RestClient;
- import org.elasticsearch.client.RestHighLevelClient;
-
- /**
- * @author DragonWu
- * @date 2022-09-18 10:02
- **/
- public class ElkTestDocSearch {
- public static void main(String[] args) throws Exception{
- //创建ES客户端
- RestHighLevelClient esClient=new RestHighLevelClient(
- RestClient.builder(new HttpHost("localhost",9200,"http"))
- );
-
- //查询请求
- GetRequest request=new GetRequest();
- request.index("user").id("1004");
- GetResponse documentFields=esClient.get(request, RequestOptions.DEFAULT);
-
- System.out.println(documentFields.getSourceAsString());
-
- //关闭ES客户端
- esClient.close();
- }
- }
运行截图

可以看到文档查询成功
- package com.dragon.test;
-
- import org.apache.http.HttpHost;
- import org.elasticsearch.action.delete.DeleteRequest;
- import org.elasticsearch.action.delete.DeleteResponse;
- import org.elasticsearch.client.RequestOptions;
- import org.elasticsearch.client.RestClient;
- import org.elasticsearch.client.RestHighLevelClient;
-
- /**
- * @author DragonWu
- * @date 2022-09-18 10:02
- **/
- public class ElkTestDocDelete {
- public static void main(String[] args) throws Exception{
- //创建ES客户端
- RestHighLevelClient esClient=new RestHighLevelClient(
- RestClient.builder(new HttpHost("localhost",9200,"http"))
- );
-
- //删除文档
- DeleteRequest request=new DeleteRequest();
- request.index("user").id("1004");
-
- DeleteResponse response=esClient.delete(request, RequestOptions.DEFAULT);
- System.out.println(response.toString());
-
- //关闭ES客户端
- esClient.close();
- }
- }
再次查询,可以看到查询失败,证明删除成功

- package com.dragon.test;
-
- import org.apache.http.HttpHost;
- import org.elasticsearch.action.bulk.BulkRequest;
- import org.elasticsearch.action.bulk.BulkResponse;
- import org.elasticsearch.action.index.IndexRequest;
- import org.elasticsearch.client.RequestOptions;
- import org.elasticsearch.client.RestClient;
- import org.elasticsearch.client.RestHighLevelClient;
- import org.elasticsearch.common.xcontent.XContentType;
-
- import java.util.Arrays;
-
- /**
- * @author DragonWu
- * @date 2022-09-18 10:29
- **/
- public class ElkTestBatchInsert {
- public static void main(String[] args) throws Exception{
- //创建ES客户端
- RestHighLevelClient esClient=new RestHighLevelClient(
- RestClient.builder(new HttpHost("localhost",9200,"http"))
- );
-
- //批量插入数据
- BulkRequest request=new BulkRequest();
-
- request.add(new IndexRequest().index("user").id("1004").source(XContentType.JSON,"name","李四"));
- request.add(new IndexRequest().index("user").id("1005").source(XContentType.JSON,"name","赵六"));
- request.add(new IndexRequest().index("user").id("1006").source(XContentType.JSON,"name","洪七"));
-
- BulkResponse response = esClient.bulk(request, RequestOptions.DEFAULT);
-
- System.out.println(response.getTook());
- System.out.println(Arrays.toString(response.getItems()));
-
- //关闭ES客户端
- esClient.close();
- }
- }
再次查询

可以看到批量插入成功
- package com.dragon.test;
-
- import org.apache.http.HttpHost;
- import org.elasticsearch.action.bulk.BulkRequest;
- import org.elasticsearch.action.bulk.BulkResponse;
- import org.elasticsearch.action.delete.DeleteRequest;
- import org.elasticsearch.client.RequestOptions;
- import org.elasticsearch.client.RestClient;
- import org.elasticsearch.client.RestHighLevelClient;
-
- import java.util.Arrays;
-
- /**
- * @author DragonWu
- * @date 2022-09-18 10:29
- **/
- public class ElkTestBatchDelete {
- public static void main(String[] args) throws Exception{
- //创建ES客户端
- RestHighLevelClient esClient=new RestHighLevelClient(
- RestClient.builder(new HttpHost("localhost",9200,"http"))
- );
-
- //批量插入数据
- BulkRequest request=new BulkRequest();
-
- request.add(new DeleteRequest().index("user").id("1004"));
- request.add(new DeleteRequest().index("user").id("1005"));
- request.add(new DeleteRequest().index("user").id("1006"));
-
- BulkResponse response = esClient.bulk(request, RequestOptions.DEFAULT);
-
- System.out.println(response.getTook());
- System.out.println(Arrays.toString(response.getItems()));
-
- //关闭ES客户端
- esClient.close();
- }
- }
首先模拟插入数据以便后面的查询
- package com.dragon.test;
-
- import org.apache.http.HttpHost;
- import org.elasticsearch.action.bulk.BulkRequest;
- import org.elasticsearch.action.bulk.BulkResponse;
- import org.elasticsearch.action.index.IndexRequest;
- import org.elasticsearch.client.RequestOptions;
- import org.elasticsearch.client.RestClient;
- import org.elasticsearch.client.RestHighLevelClient;
- import org.elasticsearch.common.xcontent.XContentType;
-
- import java.util.Arrays;
-
- /**
- * @author DragonWu
- * @date 2022-09-18 10:29
- **/
- public class ElkTestBatchInsert {
- public static void main(String[] args) throws Exception{
- //创建ES客户端
- RestHighLevelClient esClient=new RestHighLevelClient(
- RestClient.builder(new HttpHost("localhost",9200,"http"))
- );
-
- //批量插入数据
- BulkRequest request=new BulkRequest();
-
- request.add(new IndexRequest().index("user").id("1004").source(XContentType.JSON,"name","李四","age",30,"sex","男"));
- request.add(new IndexRequest().index("user").id("1005").source(XContentType.JSON,"name","赵六","age",40,"sex","男"));
- request.add(new IndexRequest().index("user").id("1006").source(XContentType.JSON,"name","洪七","age",50,"sex","女"));
- request.add(new IndexRequest().index("user").id("1007").source(XContentType.JSON,"name","王五","age",30,"sex","男"));
- request.add(new IndexRequest().index("user").id("1008").source(XContentType.JSON,"name","张三","age",40,"sex","男"));
- request.add(new IndexRequest().index("user").id("1009").source(XContentType.JSON,"name","王二","age",50,"sex","女"));
-
-
- BulkResponse response = esClient.bulk(request, RequestOptions.DEFAULT);
-
- System.out.println(response.getTook());
- System.out.println(Arrays.toString(response.getItems()));
-
- //关闭ES客户端
- esClient.close();
- }
- }
通过ApiPost查询可以看到如下数据文档列表
- {
- "took": 945,
- "timed_out": false,
- "_shards": {
- "total": 1,
- "successful": 1,
- "skipped": 0,
- "failed": 0
- },
- "hits": {
- "total": {
- "value": 9,
- "relation": "eq"
- },
- "max_score": 1,
- "hits": [
- {
- "_index": "user",
- "_id": "1002",
- "_score": 1,
- "_source": {
- "name": "Fack",
- "sex": "男",
- "tel": 11011011012
- }
- },
- {
- "_index": "user",
- "_id": "1003",
- "_score": 1,
- "_source": {
- "name": "Alice",
- "sex": "女",
- "tel": 11011011013
- }
- },
- {
- "_index": "user",
- "_id": "1001",
- "_score": 1,
- "_source": {
- "name": "张三",
- "sex": "男",
- "age": 21
- }
- },
- {
- "_index": "user",
- "_id": "1004",
- "_score": 1,
- "_source": {
- "name": "李四",
- "age": 30,
- "sex": "男"
- }
- },
- {
- "_index": "user",
- "_id": "1005",
- "_score": 1,
- "_source": {
- "name": "赵六",
- "age": 40,
- "sex": "男"
- }
- },
- {
- "_index": "user",
- "_id": "1006",
- "_score": 1,
- "_source": {
- "name": "洪七",
- "age": 50,
- "sex": "女"
- }
- },
- {
- "_index": "user",
- "_id": "1007",
- "_score": 1,
- "_source": {
- "name": "王五",
- "age": 30,
- "sex": "男"
- }
- },
- {
- "_index": "user",
- "_id": "1008",
- "_score": 1,
- "_source": {
- "name": "张三",
- "age": 40,
- "sex": "男"
- }
- },
- {
- "_index": "user",
- "_id": "1009",
- "_score": 1,
- "_source": {
- "name": "王二",
- "age": 50,
- "sex": "女"
- }
- }
- ]
- }
- }
- package com.dragon.test;
-
- import org.apache.http.HttpHost;
- import org.elasticsearch.action.search.SearchRequest;
- import org.elasticsearch.action.search.SearchResponse;
- import org.elasticsearch.client.RequestOptions;
- import org.elasticsearch.client.RestClient;
- import org.elasticsearch.client.RestHighLevelClient;
- import org.elasticsearch.index.query.QueryBuilders;
- import org.elasticsearch.search.SearchHit;
- import org.elasticsearch.search.SearchHits;
- import org.elasticsearch.search.builder.SearchSourceBuilder;
-
- /**
- * @author DragonWu
- * @date 2022-09-18 10:46
- **/
- public class DocQuery {
- public static void main(String[] args) throws Exception {
- //创建ES客户端
- RestHighLevelClient esClient = new RestHighLevelClient(
- RestClient.builder(new HttpHost("localhost", 9200, "http"))
- );
-
- //查询索引中全部数据
- SearchRequest request = new SearchRequest();
- request.indices("user");
-
- request.source(new SearchSourceBuilder().query(QueryBuilders.matchAllQuery()));
-
- SearchResponse searchResponse = esClient.search(request, RequestOptions.DEFAULT);
-
- SearchHits hits = searchResponse.getHits();
-
- System.out.println(hits.getTotalHits());
- System.out.println(searchResponse.getTook());
-
- for (SearchHit hit : hits) {
- System.out.println(hit.getSourceAsString());
- }
-
- //关闭ES客户端
- esClient.close();
- }
- }
运行截图

可以看到之前批量插入的数据都获取到了
- package com.dragon.test;
-
- import org.apache.http.HttpHost;
- import org.elasticsearch.action.search.SearchRequest;
- import org.elasticsearch.action.search.SearchResponse;
- import org.elasticsearch.client.RequestOptions;
- import org.elasticsearch.client.RestClient;
- import org.elasticsearch.client.RestHighLevelClient;
- import org.elasticsearch.index.query.QueryBuilders;
- import org.elasticsearch.search.SearchHit;
- import org.elasticsearch.search.SearchHits;
- import org.elasticsearch.search.builder.SearchSourceBuilder;
-
- /**
- * @author DragonWu
- * @date 2022-09-18 10:46
- **/
- public class DocQuery {
- public static void main(String[] args) throws Exception {
- //创建ES客户端
- RestHighLevelClient esClient = new RestHighLevelClient(
- RestClient.builder(new HttpHost("localhost", 9200, "http"))
- );
-
- //条件查询 : termQuery
- SearchRequest request = new SearchRequest();
- request.indices("user");
-
- request.source(new SearchSourceBuilder().query(QueryBuilders.termQuery("age",30)));
-
- SearchResponse searchResponse = esClient.search(request, RequestOptions.DEFAULT);
-
- SearchHits hits = searchResponse.getHits();
-
- System.out.println(hits.getTotalHits());
- System.out.println(searchResponse.getTook());
-
- for (SearchHit hit : hits) {
- System.out.println(hit.getSourceAsString());
- }
-
- //关闭ES客户端
- esClient.close();
- }
- }
运行截图

可以看到条件查询的数据
- package com.dragon.test;
-
- import org.apache.http.HttpHost;
- import org.elasticsearch.action.search.SearchRequest;
- import org.elasticsearch.action.search.SearchResponse;
- import org.elasticsearch.client.RequestOptions;
- import org.elasticsearch.client.RestClient;
- import org.elasticsearch.client.RestHighLevelClient;
- import org.elasticsearch.index.query.QueryBuilders;
- import org.elasticsearch.search.SearchHit;
- import org.elasticsearch.search.SearchHits;
- import org.elasticsearch.search.builder.SearchSourceBuilder;
-
- /**
- * @author DragonWu
- * @date 2022-09-18 10:46
- **/
- public class DocQuery {
- public static void main(String[] args) throws Exception {
- //创建ES客户端
- RestHighLevelClient esClient = new RestHighLevelClient(
- RestClient.builder(new HttpHost("localhost", 9200, "http"))
- );
-
- //条件查询 : termQuery
- SearchRequest request = new SearchRequest();
- request.indices("user");
-
- SearchSourceBuilder builder = new SearchSourceBuilder().query(QueryBuilders.matchAllQuery());
- //(当前页码-1)*每页显示的条数
- builder.from(0);
- builder.size(2);
-
- request.source(builder);
-
- SearchResponse searchResponse = esClient.search(request, RequestOptions.DEFAULT);
-
- SearchHits hits = searchResponse.getHits();
-
- System.out.println(hits.getTotalHits());
- System.out.println(searchResponse.getTook());
-
- for (SearchHit hit : hits) {
- System.out.println(hit.getSourceAsString());
- }
-
- //关闭ES客户端
- esClient.close();
- }
- }
可以看到分页查询成功

- package com.dragon.test;
-
- import org.apache.http.HttpHost;
- import org.elasticsearch.action.search.SearchRequest;
- import org.elasticsearch.action.search.SearchResponse;
- import org.elasticsearch.client.RequestOptions;
- import org.elasticsearch.client.RestClient;
- import org.elasticsearch.client.RestHighLevelClient;
- import org.elasticsearch.index.query.QueryBuilders;
- import org.elasticsearch.search.SearchHit;
- import org.elasticsearch.search.SearchHits;
- import org.elasticsearch.search.builder.SearchSourceBuilder;
- import org.elasticsearch.search.sort.SortOrder;
-
- /**
- * @author DragonWu
- * @date 2022-09-18 10:46
- **/
- public class DocQuery {
- public static void main(String[] args) throws Exception {
- //创建ES客户端
- RestHighLevelClient esClient = new RestHighLevelClient(
- RestClient.builder(new HttpHost("localhost", 9200, "http"))
- );
-
- //条件查询 : termQuery
- SearchRequest request = new SearchRequest();
- request.indices("user");
-
- SearchSourceBuilder builder = new SearchSourceBuilder().query(QueryBuilders.matchAllQuery());
- builder.sort("age", SortOrder.DESC);
-
- request.source(builder);
-
- SearchResponse searchResponse = esClient.search(request, RequestOptions.DEFAULT);
-
- SearchHits hits = searchResponse.getHits();
-
- System.out.println(hits.getTotalHits());
- System.out.println(searchResponse.getTook());
-
- for (SearchHit hit : hits) {
- System.out.println(hit.getSourceAsString());
- }
-
- //关闭ES客户端
- esClient.close();
- }
- }
排序成功

- package com.dragon.test;
-
- import org.apache.http.HttpHost;
- import org.elasticsearch.action.search.SearchRequest;
- import org.elasticsearch.action.search.SearchResponse;
- import org.elasticsearch.client.RequestOptions;
- import org.elasticsearch.client.RestClient;
- import org.elasticsearch.client.RestHighLevelClient;
- import org.elasticsearch.index.query.QueryBuilders;
- import org.elasticsearch.search.SearchHit;
- import org.elasticsearch.search.SearchHits;
- import org.elasticsearch.search.builder.SearchSourceBuilder;
-
- /**
- * @author DragonWu
- * @date 2022-09-18 10:46
- **/
- public class DocQuery {
- public static void main(String[] args) throws Exception {
- //创建ES客户端
- RestHighLevelClient esClient = new RestHighLevelClient(
- RestClient.builder(new HttpHost("localhost", 9200, "http"))
- );
-
- SearchRequest request = new SearchRequest();
- request.indices("user");
-
- SearchSourceBuilder builder = new SearchSourceBuilder().query(QueryBuilders.matchAllQuery());
- String[] excludes={};
- String[] includes={"name"};
- builder.fetchSource(includes,excludes);
-
- request.source(builder);
-
- SearchResponse searchResponse = esClient.search(request, RequestOptions.DEFAULT);
-
- SearchHits hits = searchResponse.getHits();
-
- System.out.println(hits.getTotalHits());
- System.out.println(searchResponse.getTook());
-
- for (SearchHit hit : hits) {
- System.out.println(hit.getSourceAsString());
- }
-
- //关闭ES客户端
- esClient.close();
- }
- }

可以看到过滤后只剩下name字段
- package com.dragon.test;
-
- import org.apache.http.HttpHost;
- import org.elasticsearch.action.search.SearchRequest;
- import org.elasticsearch.action.search.SearchResponse;
- import org.elasticsearch.client.RequestOptions;
- import org.elasticsearch.client.RestClient;
- import org.elasticsearch.client.RestHighLevelClient;
- import org.elasticsearch.index.query.BoolQueryBuilder;
- import org.elasticsearch.index.query.QueryBuilders;
- import org.elasticsearch.search.SearchHit;
- import org.elasticsearch.search.SearchHits;
- import org.elasticsearch.search.builder.SearchSourceBuilder;
-
- /**
- * @author DragonWu
- * @date 2022-09-18 10:46
- **/
- public class DocQuery {
- public static void main(String[] args) throws Exception {
- //创建ES客户端
- RestHighLevelClient esClient = new RestHighLevelClient(
- RestClient.builder(new HttpHost("localhost", 9200, "http"))
- );
-
- SearchRequest request = new SearchRequest();
- request.indices("user");
-
- SearchSourceBuilder builder = new SearchSourceBuilder();
- BoolQueryBuilder boolQueryBuilder= QueryBuilders.boolQuery();
-
- boolQueryBuilder.should(QueryBuilders.matchQuery("age",30));
- boolQueryBuilder.should(QueryBuilders.matchQuery("age",40));
-
- builder.query(boolQueryBuilder);
-
- request.source(builder);
-
- SearchResponse searchResponse = esClient.search(request, RequestOptions.DEFAULT);
-
- SearchHits hits = searchResponse.getHits();
-
- System.out.println(hits.getTotalHits());
- System.out.println(searchResponse.getTook());
-
- for (SearchHit hit : hits) {
- System.out.println(hit.getSourceAsString());
- }
-
- //关闭ES客户端
- esClient.close();
- }
- }
运行截图

- package com.dragon.test;
-
- import org.apache.http.HttpHost;
- import org.elasticsearch.action.search.SearchRequest;
- import org.elasticsearch.action.search.SearchResponse;
- import org.elasticsearch.client.RequestOptions;
- import org.elasticsearch.client.RestClient;
- import org.elasticsearch.client.RestHighLevelClient;
- import org.elasticsearch.index.query.QueryBuilders;
- import org.elasticsearch.index.query.RangeQueryBuilder;
- import org.elasticsearch.search.SearchHit;
- import org.elasticsearch.search.SearchHits;
- import org.elasticsearch.search.builder.SearchSourceBuilder;
-
- /**
- * @author DragonWu
- * @date 2022-09-18 10:46
- **/
- public class DocQuery {
- public static void main(String[] args) throws Exception {
- //创建ES客户端
- RestHighLevelClient esClient = new RestHighLevelClient(
- RestClient.builder(new HttpHost("localhost", 9200, "http"))
- );
-
- SearchRequest request = new SearchRequest();
- request.indices("user");
-
- SearchSourceBuilder builder = new SearchSourceBuilder();
- RangeQueryBuilder rangeQuery = QueryBuilders.rangeQuery("age");
-
- rangeQuery.gte(30);
- rangeQuery.lte(40);
-
- builder.query(rangeQuery);
-
- request.source(builder);
-
- SearchResponse searchResponse = esClient.search(request, RequestOptions.DEFAULT);
-
- SearchHits hits = searchResponse.getHits();
-
- System.out.println(hits.getTotalHits());
- System.out.println(searchResponse.getTook());
-
- for (SearchHit hit : hits) {
- System.out.println(hit.getSourceAsString());
- }
-
- //关闭ES客户端
- esClient.close();
- }
- }

- package com.dragon.test;
-
- import org.apache.http.HttpHost;
- import org.elasticsearch.action.search.SearchRequest;
- import org.elasticsearch.action.search.SearchResponse;
- import org.elasticsearch.client.RequestOptions;
- import org.elasticsearch.client.RestClient;
- import org.elasticsearch.client.RestHighLevelClient;
- import org.elasticsearch.common.unit.Fuzziness;
- import org.elasticsearch.index.query.QueryBuilders;
- import org.elasticsearch.search.SearchHit;
- import org.elasticsearch.search.SearchHits;
- import org.elasticsearch.search.builder.SearchSourceBuilder;
-
- /**
- * @author DragonWu
- * @date 2022-09-18 10:46
- **/
- public class DocQuery {
- public static void main(String[] args) throws Exception {
- //创建ES客户端
- RestHighLevelClient esClient = new RestHighLevelClient(
- RestClient.builder(new HttpHost("localhost", 9200, "http"))
- );
-
- SearchRequest request = new SearchRequest();
- request.indices("user");
-
- SearchSourceBuilder builder = new SearchSourceBuilder();
-
- builder.query(QueryBuilders.fuzzyQuery("name","张三").fuzziness(Fuzziness.ONE));
-
- request.source(builder);
-
- SearchResponse searchResponse = esClient.search(request, RequestOptions.DEFAULT);
-
- SearchHits hits = searchResponse.getHits();
-
- System.out.println(hits.getTotalHits());
- System.out.println(searchResponse.getTook());
-
- for (SearchHit hit : hits) {
- System.out.println(hit.getSourceAsString());
- }
-
- //关闭ES客户端
- esClient.close();
- }
- }

- package com.dragon.test;
-
- import org.apache.http.HttpHost;
- import org.elasticsearch.action.search.SearchRequest;
- import org.elasticsearch.action.search.SearchResponse;
- import org.elasticsearch.client.RequestOptions;
- import org.elasticsearch.client.RestClient;
- import org.elasticsearch.client.RestHighLevelClient;
- import org.elasticsearch.index.query.QueryBuilders;
- import org.elasticsearch.index.query.TermsQueryBuilder;
- import org.elasticsearch.search.SearchHit;
- import org.elasticsearch.search.SearchHits;
- import org.elasticsearch.search.builder.SearchSourceBuilder;
- import org.elasticsearch.search.fetch.subphase.highlight.HighlightBuilder;
-
- /**
- * @author DragonWu
- * @date 2022-09-18 10:46
- **/
- public class DocQuery {
- public static void main(String[] args) throws Exception {
- //创建ES客户端
- RestHighLevelClient esClient = new RestHighLevelClient(
- RestClient.builder(new HttpHost("localhost", 9200, "http"))
- );
-
- SearchRequest request = new SearchRequest();
- request.indices("user");
-
- SearchSourceBuilder builder = new SearchSourceBuilder();
- TermsQueryBuilder termsQueryBuilder = QueryBuilders.termsQuery("name", "李四");
-
- HighlightBuilder highlightBuilder=new HighlightBuilder();
- highlightBuilder.preTags("");
- highlightBuilder.postTags("");
- highlightBuilder.field("name");
-
- builder.highlighter(highlightBuilder);
- builder.query(termsQueryBuilder);
-
- request.source(builder);
-
- SearchResponse searchResponse = esClient.search(request, RequestOptions.DEFAULT);
- SearchHits hits = searchResponse.getHits();
-
- System.out.println(hits.getTotalHits());
- System.out.println(searchResponse.getTook());
-
- for (SearchHit hit : hits) {
- System.out.println(hit.getSourceAsString());
- }
-
- //关闭ES客户端
- esClient.close();
- }
- }

- package com.dragon.test;
-
- import org.apache.http.HttpHost;
- import org.elasticsearch.action.search.SearchRequest;
- import org.elasticsearch.action.search.SearchResponse;
- import org.elasticsearch.client.RequestOptions;
- import org.elasticsearch.client.RestClient;
- import org.elasticsearch.client.RestHighLevelClient;
- import org.elasticsearch.search.SearchHit;
- import org.elasticsearch.search.SearchHits;
- import org.elasticsearch.search.aggregations.AggregationBuilders;
- import org.elasticsearch.search.aggregations.bucket.terms.TermsAggregationBuilder;
- import org.elasticsearch.search.builder.SearchSourceBuilder;
-
- /**
- * @author DragonWu
- * @date 2022-09-18 10:46
- **/
- public class DocQuery {
- public static void main(String[] args) throws Exception {
- //创建ES客户端
- RestHighLevelClient esClient = new RestHighLevelClient(
- RestClient.builder(new HttpHost("localhost", 9200, "http"))
- );
-
- SearchRequest request = new SearchRequest();
- request.indices("user");
-
- SearchSourceBuilder builder=new SearchSourceBuilder();
-
- TermsAggregationBuilder aggregationBuilder = AggregationBuilders.terms("ageGroup").field("age");
- builder.aggregation(aggregationBuilder);
-
- request.source(builder);
- SearchResponse searchResponse = esClient.search(request, RequestOptions.DEFAULT);
-
- SearchHits hits = searchResponse.getHits();
-
- System.out.println(hits.getTotalHits());
- System.out.println(searchResponse.getTook());
-
- for (SearchHit hit : hits) {
- System.out.println(hit.getSourceAsString());
- }
-
- //关闭ES客户端
- esClient.close();
- }
- }
