From 7574a0ee9ab33d44e461559002d68d7ccd8456f1 Mon Sep 17 00:00:00 2001 From: jaime Date: Thu, 27 Feb 2025 10:26:14 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E4=BC=98=E5=8C=96=E7=B4=A2=E5=BC=95?= =?UTF-8?q?=E5=88=9B=E5=BB=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../easyes/core/kernel/BaseEsMapper.java | 2 +- .../easyes/core/kernel/BaseEsMapperImpl.java | 2 +- .../org/dromara/easyes/test/all/AllTest.java | 73 ++++++++++--------- .../org/dromara/easyes/test/mix/MixTest.java | 6 +- 4 files changed, 45 insertions(+), 38 deletions(-) diff --git a/easy-es-core/src/main/java/org/dromara/easyes/core/kernel/BaseEsMapper.java b/easy-es-core/src/main/java/org/dromara/easyes/core/kernel/BaseEsMapper.java index 89953968..d8fc3829 100644 --- a/easy-es-core/src/main/java/org/dromara/easyes/core/kernel/BaseEsMapper.java +++ b/easy-es-core/src/main/java/org/dromara/easyes/core/kernel/BaseEsMapper.java @@ -164,7 +164,7 @@ public interface BaseEsMapper { * @param wrapper 条件 * @return 查询参数 */ - SearchRequest.Builder getSearchSourceBuilder(Wrapper wrapper); + SearchRequest.Builder getSearchBuilder(Wrapper wrapper); /** * es原生查询 diff --git a/easy-es-core/src/main/java/org/dromara/easyes/core/kernel/BaseEsMapperImpl.java b/easy-es-core/src/main/java/org/dromara/easyes/core/kernel/BaseEsMapperImpl.java index 94fa5ba5..49e23309 100644 --- a/easy-es-core/src/main/java/org/dromara/easyes/core/kernel/BaseEsMapperImpl.java +++ b/easy-es-core/src/main/java/org/dromara/easyes/core/kernel/BaseEsMapperImpl.java @@ -201,7 +201,7 @@ public class BaseEsMapperImpl implements BaseEsMapper { } @Override - public SearchRequest.Builder getSearchSourceBuilder(Wrapper wrapper) { + public SearchRequest.Builder getSearchBuilder(Wrapper wrapper) { return WrapperProcessor.buildSearchBuilder(wrapper, entityClass); } diff --git a/easy-es-solon-test/src/test/java/org/dromara/easyes/test/all/AllTest.java b/easy-es-solon-test/src/test/java/org/dromara/easyes/test/all/AllTest.java index b4427c57..deb6accc 100644 --- a/easy-es-solon-test/src/test/java/org/dromara/easyes/test/all/AllTest.java +++ b/easy-es-solon-test/src/test/java/org/dromara/easyes/test/all/AllTest.java @@ -10,6 +10,7 @@ import co.elastic.clients.elasticsearch.core.SearchRequest; import co.elastic.clients.elasticsearch.core.SearchResponse; import co.elastic.clients.json.JsonData; import co.elastic.clients.transport.rest_client.RestClientOptions; +import org.dromara.easyes.common.constants.BaseEsConstants; import org.dromara.easyes.core.biz.EntityInfo; import org.dromara.easyes.core.biz.EsPageInfo; import org.dromara.easyes.core.biz.OrderByParam; @@ -940,39 +941,39 @@ public class AllTest { } // 4.删除 -// @Test -// @Order(76) -// public void testDeleteById() { -// int count = documentMapper.deleteById("1"); -// Assertions.assertEquals(1, count); -// } -// -// @Test -// @Order(77) -// public void testDeleteBatchIds() { -// List idList = Arrays.asList("2", "3", "4"); -// int count = documentMapper.deleteBatchIds(idList); -// Assertions.assertEquals(3, count); -// } + @Test + @Order(76) + public void testDeleteById() { + int count = documentMapper.deleteById("1"); + Assertions.assertEquals(1, count); + } -// @Test -// @Order(78) -// public void testDeleteByWrapper() { -// LambdaEsQueryWrapper wrapper = new LambdaEsQueryWrapper<>(); -// wrapper.match(Document::getCreator, "老汉"); -// -// int count = documentMapper.delete(wrapper); -// Assertions.assertEquals(18, count); -// } + @Test + @Order(77) + public void testDeleteBatchIds() { + List idList = Arrays.asList("2", "3", "4"); + int count = documentMapper.deleteBatchIds(idList); + Assertions.assertEquals(3, count); + } -// @Test -// @Order(80) -// public void testDeleteIndex() { -// boolean deleted = documentMapper.deleteIndex(EntityInfoHelper.getEntityInfo(Document.class).getIndexName()); -// boolean lockDeleted = documentMapper.deleteIndex(BaseEsConstants.LOCK_INDEX); -// Assertions.assertTrue(deleted); -// Assertions.assertTrue(lockDeleted); -// } + @Test + @Order(78) + public void testDeleteByWrapper() { + LambdaEsQueryWrapper wrapper = new LambdaEsQueryWrapper<>(); + wrapper.match(Document::getCreator, "老汉"); + + int count = documentMapper.delete(wrapper); + Assertions.assertEquals(18, count); + } + + @Test + @Order(80) + public void testDeleteIndex() { + boolean deleted = documentMapper.deleteIndex(EntityInfoHelper.getEntityInfo(Document.class).getIndexName()); + boolean lockDeleted = documentMapper.deleteIndex(BaseEsConstants.LOCK_INDEX); + Assertions.assertTrue(deleted); + Assertions.assertTrue(lockDeleted); + } @Test @Order(79) @@ -996,7 +997,8 @@ public class AllTest { .must(d -> d.terms(e -> e.field("state").terms(f -> f.value(values)))) )); - System.out.println(boolQueryBuilder); + Query query = boolQueryBuilder.build()._toQuery(); + System.out.println(query.toString()); System.out.println("--------------------"); // MP及EE写法 @@ -1004,7 +1006,12 @@ public class AllTest { wrapper.eq("business_type", 1) .and(a -> a.eq("state", 9).or(b -> b.eq("state", 8).eq("bidding_sign", 1))) .or(i -> i.eq("business_type", 2).in("state", 2, 3)); - documentMapper.selectList(wrapper); + SearchRequest.Builder searchBuilder = documentMapper.getSearchBuilder(wrapper); + Query qry = searchBuilder.build().query(); + if (qry != null) { + System.out.println(qry); + } + List documents = documentMapper.selectList(wrapper); } } diff --git a/easy-es-springboot-test/src/test/java/org/dromara/easyes/test/mix/MixTest.java b/easy-es-springboot-test/src/test/java/org/dromara/easyes/test/mix/MixTest.java index ed3bc91e..8fa64c83 100644 --- a/easy-es-springboot-test/src/test/java/org/dromara/easyes/test/mix/MixTest.java +++ b/easy-es-springboot-test/src/test/java/org/dromara/easyes/test/mix/MixTest.java @@ -108,7 +108,7 @@ public class MixTest { LambdaEsQueryWrapper wrapper = new LambdaEsQueryWrapper<>(); wrapper.eq(Document::getTitle, "老汉") .match(Document::getContent, "推*"); - SearchRequest.Builder searchSourceBuilder = documentMapper.getSearchSourceBuilder(wrapper); + SearchRequest.Builder searchSourceBuilder = documentMapper.getSearchBuilder(wrapper); // 追加或者设置一些SearchSourceBuilder支持但EE暂不支持的参数 不建议追加query参数,因为如果追加query参数会直接覆盖上面EE已经帮你生成好的query,以最后set的query为准 searchSourceBuilder.timeout(TimeValue.timeValueSeconds(3L)); @@ -127,7 +127,7 @@ public class MixTest { LambdaEsQueryWrapper wrapper = new LambdaEsQueryWrapper<>(); wrapper.eq(Document::getTitle, "老汉") .match(Document::getContent, "推*"); - SearchRequest.Builder searchSourceBuilder = documentMapper.getSearchSourceBuilder(wrapper); + SearchRequest.Builder searchSourceBuilder = documentMapper.getSearchBuilder(wrapper); // ElasticsearchClient原生语法 AggregationBuilder aggregation = AggregationBuilders.terms("titleAgg") @@ -148,7 +148,7 @@ public class MixTest { LambdaEsQueryWrapper wrapper = new LambdaEsQueryWrapper<>(); wrapper.eq(Document::getTitle, "老汉") .match(Document::getContent, "推*"); - SearchRequest.Builder searchSourceBuilder = documentMapper.getSearchSourceBuilder(wrapper); + SearchRequest.Builder searchSourceBuilder = documentMapper.getSearchBuilder(wrapper); // 用户又想在上面的基础上,再追加一些个性化的查询参数进去 但实际上此时执行查询时,查询条件仅仅是最后设置的title=隔壁老王,前面的老汉推*会被覆盖 searchSourceBuilder.query(QueryBuilders.matchQuery("title", "隔壁老王"));