From 944a01d60ffd53ca3a3b87ccfcaedc096219aba2 Mon Sep 17 00:00:00 2001
From: whywhyo <1511349576@qq.com>
Date: 星期日, 17 九月 2023 23:42:47 +0800
Subject: [PATCH] 77777

---
 zhang-content/src/main/java/com/ruoyi/service/impl/EsServiceImpl.java |  124 +++++++++++++++++++++++++++++++++++++++++
 1 files changed, 124 insertions(+), 0 deletions(-)

diff --git a/zhang-content/src/main/java/com/ruoyi/service/impl/EsServiceImpl.java b/zhang-content/src/main/java/com/ruoyi/service/impl/EsServiceImpl.java
new file mode 100644
index 0000000..a2ffacc
--- /dev/null
+++ b/zhang-content/src/main/java/com/ruoyi/service/impl/EsServiceImpl.java
@@ -0,0 +1,124 @@
+package com.ruoyi.service.impl;
+
+import com.ruoyi.common.core.domain.entity.EsModel;
+import com.ruoyi.mapper.EsRepository;
+import com.ruoyi.service.EsService;
+
+import org.elasticsearch.index.query.BoolQueryBuilder;
+import org.elasticsearch.index.query.MultiMatchQueryBuilder;
+import org.elasticsearch.index.query.QueryBuilders;
+import org.springframework.data.domain.PageRequest;
+import org.springframework.data.elasticsearch.core.ElasticsearchRestTemplate;
+import org.springframework.data.elasticsearch.core.SearchHit;
+import org.springframework.data.elasticsearch.core.SearchHits;
+import org.springframework.data.elasticsearch.core.mapping.IndexCoordinates;
+import org.springframework.data.elasticsearch.core.query.NativeSearchQuery;
+import org.springframework.data.elasticsearch.core.query.NativeSearchQueryBuilder;
+import org.springframework.data.elasticsearch.core.query.Query;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Objects;
+
+@Service
+public class EsServiceImpl implements EsService {
+    @Resource
+    private EsRepository esRepository;
+    @Resource
+    private ElasticsearchRestTemplate elasticsearchRestTemplate;
+    @Override
+    public int insertTable(EsModel esModel) {
+        try {
+            esRepository.save(esModel);
+           // esRepository.searchSimilar()
+        } catch (Exception e) {
+            System.out.println(e);
+            // throw new Exception("ES鏁版嵁鍚屾澶辫触锛岃鑱旂郴绠$悊鍛樺鐞嗭紒");
+        }
+        return 0;
+    }
+
+    //  鍏ㄦ枃妫�绱�
+    @Override
+    public List<EsModel> findByCondition(String con) {
+        List<EsModel> esm = new ArrayList<>();
+       // MatchQueryBuilder matchQueryBuilder = QueryBuilders.matchQuery("title", title);
+        //澶氬瓧娈佃繘琛屽尮閰�
+//        MultiMatchQueryBuilder multiMatchQueryBuilder = QueryBuilders.multiMatchQuery(con, "ctName", "ctContent","remark",
+//                "by1","by2","by3","by4");
+        BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();
+        boolQueryBuilder.should(QueryBuilders.matchQuery("ctName",con));
+        boolQueryBuilder.should(QueryBuilders.matchQuery("ctContent",con));
+        boolQueryBuilder.should(QueryBuilders.matchQuery("remark",con));
+        boolQueryBuilder.should(QueryBuilders.matchQuery("by1",con));
+        boolQueryBuilder.should(QueryBuilders.matchQuery("by2",con));
+        boolQueryBuilder.should(QueryBuilders.matchQuery("by3",con));
+        boolQueryBuilder.should(QueryBuilders.matchQuery("by4",con));
+        boolQueryBuilder.should(QueryBuilders.matchQuery("by6",con));
+        boolQueryBuilder.should(QueryBuilders.matchQuery("by7",con));
+
+        NativeSearchQueryBuilder nativeSearchQueryBuilder = new NativeSearchQueryBuilder()
+                .withQuery(boolQueryBuilder);
+        NativeSearchQuery nativeSearchQuery = nativeSearchQueryBuilder.build();
+
+        // 鎵ц鏌ヨ
+        SearchHits<EsModel> searchHits = elasticsearchRestTemplate.search(nativeSearchQuery,EsModel.class);
+        searchHits.getSearchHits().forEach(personSearchHit -> {
+            EsModel content = personSearchHit.getContent();
+            esm.add(content);
+        //    System.out.println(content);
+        });
+       // articleList.forEach(a-> System.out.println(a))
+
+        return esm;
+
+    }
+
+    //鏍规嵁mysql涓殑id鏌ユ壘淇℃伅
+    @Override
+    public EsModel findByCtId(Integer ctId, String ctTableName) {
+//        NativeSearchQuery searchQuery = new NativeSearchQueryBuilder()
+//                .withQuery(QueryBuilders.matchQuery("ctId", ctId)) // 鑷畾涔夋煡璇㈡潯浠�
+//                .withQuery(QueryBuilders.matchQuery("ctTableName", ctTableName)) // 鑷畾涔夋煡璇㈡潯浠�
+//                .build();
+        BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();
+        boolQueryBuilder.must(QueryBuilders.matchQuery("ctId", ctId));
+        boolQueryBuilder.must(QueryBuilders.matchQuery("ctTableName", ctTableName));
+
+        NativeSearchQueryBuilder nativeSearchQueryBuilder = new NativeSearchQueryBuilder()
+                .withQuery(boolQueryBuilder);
+        NativeSearchQuery nativeSearchQuery = nativeSearchQueryBuilder.build();
+
+        return Objects.requireNonNull(elasticsearchRestTemplate.searchOne(nativeSearchQuery, EsModel.class)).getContent();
+
+    }
+
+    @Override
+    public void deleteById(String id) {
+        esRepository.deleteById(id);
+    }
+
+    @Override
+    public void deleteAllData() {
+        esRepository.deleteAll();
+    }
+
+    @Override
+    public List<EsModel> getAll() {
+
+        ArrayList<EsModel> esModels = new ArrayList<>();
+
+        // 鏋勫缓鏌ヨ璇锋眰
+        SearchHits<EsModel> searchHits = elasticsearchRestTemplate.search(Query.findAll(), EsModel.class,IndexCoordinates.of("allsearchdata"));
+
+        Iterator<SearchHit<EsModel>> iterator = searchHits.stream().iterator();
+        while (iterator.hasNext()){
+            esModels.add(iterator.next().getContent());
+        }
+        // 杩斿洖鏌ヨ缁撴灉
+        return esModels;
+    }
+}

--
Gitblit v1.9.1