From d29cce61fb3a38f9f57a64a2a20d276b0d1254bc Mon Sep 17 00:00:00 2001
From: feige <feige@qq.com>
Date: 星期六, 16 九月 2023 11:54:24 +0800
Subject: [PATCH] es的增加索引和查询已经写好了,可以直接调用了

---
 zhang-content/src/main/java/com/ruoyi/service/impl/ZfEventServiceImpl.java  |   41 +++++-----
 zhang-content/src/main/java/com/ruoyi/service/impl/esServiceImpl.java       |   61 +++++++++++---
 ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/EsModel.java |   25 +++---
 ruoyi-admin/src/main/resources/application-druid.yml                        |    2 
 ruoyi-admin/src/test/java/com/ruoyi/esTest.java                             |   37 ++++++++
 ruoyi-common/src/main/java/com/ruoyi/common/config/ElasticSearchConfig.java |   43 ++++++++++
 zhang-content/src/main/java/com/ruoyi/service/esService.java                |    6 +
 ruoyi-admin/src/main/resources/application.yml                              |    4 
 8 files changed, 167 insertions(+), 52 deletions(-)

diff --git a/ruoyi-admin/src/main/resources/application-druid.yml b/ruoyi-admin/src/main/resources/application-druid.yml
index 38fe8b0..ab100dc 100644
--- a/ruoyi-admin/src/main/resources/application-druid.yml
+++ b/ruoyi-admin/src/main/resources/application-druid.yml
@@ -6,7 +6,7 @@
         druid:
             # 涓诲簱鏁版嵁婧�
             master:
-     #           url: jdbc:mysql://47.93.189.255:3306/ruoyi?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
+                #url: jdbc:mysql://47.93.189.255:3306/ruoyi?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
                 url: jdbc:mysql://localhost:3306/ruoyi?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
                 username: root
                 password: ZhangApp123!
diff --git a/ruoyi-admin/src/main/resources/application.yml b/ruoyi-admin/src/main/resources/application.yml
index 85800ff..22db82a 100644
--- a/ruoyi-admin/src/main/resources/application.yml
+++ b/ruoyi-admin/src/main/resources/application.yml
@@ -51,8 +51,8 @@
 spring:
   #es閰嶇疆
   elasticsearch:
-    rest:
-      uris: http://localhost:8087
+    host: 47.93.189.255
+    port: 8087
   # 璧勬簮淇℃伅
   messages:
     # 鍥介檯鍖栬祫婧愭枃浠惰矾寰�
diff --git a/ruoyi-admin/src/test/java/com/ruoyi/esTest.java b/ruoyi-admin/src/test/java/com/ruoyi/esTest.java
index 77c1fdf..45355cf 100644
--- a/ruoyi-admin/src/test/java/com/ruoyi/esTest.java
+++ b/ruoyi-admin/src/test/java/com/ruoyi/esTest.java
@@ -4,6 +4,11 @@
 
 
 
+import com.ruoyi.common.config.ElasticSearchConfig;
+import com.ruoyi.common.core.domain.entity.EsModel;
+import com.ruoyi.domain.ZfEvent;
+import com.ruoyi.mapper.EsRepository;
+import com.ruoyi.service.ZfEventService;
 import com.ruoyi.service.esService;
 import org.elasticsearch.client.IndicesClient;
 
@@ -11,25 +16,53 @@
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.test.context.SpringBootTest;
 
+import java.util.UUID;
+
 
 @SpringBootTest
 public class esTest {
     @Autowired
     private esService ess;
 
+    @Autowired
+    private EsRepository resp;
+    @Autowired
+    private ZfEventService zfEs;
+
     @Test
     public void esUser()
     {
+        System.out.println("__________________________");
+        System.out.println(ess.findByCondition("鎴戠湡鐨勫緢寮�蹇�"));
 //     request.settings(Settings.builder().put("number_of_shards", "1").put("number_of_replicas", "0"));
 //     request.settings(Settings.builder().put("number_of_shards", "1").put("number_of_replicas", "0"));
     }
     @Test
     public void esUs()
     {
-        // 鎿嶄綔绱㈠紩鐨勫璞�
+//        // 鎿嶄綔绱㈠紩鐨勫璞�
         System.out.println(ess);
+        ZfEvent zfe = new ZfEvent();
+        zfe.setId(1489);
+        zfe.setRemark("澶у濂�90");
+        zfe.setAddress("浣犲ソ2");
+        zfe.setTitle("寰堝ソ寰堝ソ");
+        zfe.setPeople("浣犲ソ");
+        zfEs.addData(zfe);
 
-     //   ess.insertTable("lis");
+//
+//        EsModel esModel = new EsModel();
+//        Integer inte = 5688;
+//        String uuid = UUID.randomUUID().toString().replace("-","");
+//        esModel.setId(Long.valueOf(inte));
+//        esModel.setCtId(Long.valueOf(inte));
+//        esModel.setCtName("3434");
+//        esModel.setCtContent("澶у濂斤紝鎵嶆槸鐪熺殑濂斤紒");
+//
+//        //杩欓噷瀛樺偍鏌ヨ璇︽儏鐨勮矾寰�
+//        esModel.setBy5("/family/zfEvent");
+//        resp.save(esModel);
+       // ess.insertTable(esModel);
 
 
 
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/config/ElasticSearchConfig.java b/ruoyi-common/src/main/java/com/ruoyi/common/config/ElasticSearchConfig.java
new file mode 100644
index 0000000..ba1fd19
--- /dev/null
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/config/ElasticSearchConfig.java
@@ -0,0 +1,43 @@
+package com.ruoyi.common.config;
+
+import org.apache.http.HttpHost;
+import org.elasticsearch.client.RestClient;
+import org.elasticsearch.client.RestHighLevelClient;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+@Configuration
+@ConfigurationProperties(prefix = "elasticsearch")
+public class ElasticSearchConfig {
+    private String host;
+    private int port;
+
+    public String getHost() {
+        return host;
+    }
+
+    public void setHost(String host) {
+        this.host = host;
+    }
+
+    public int getPort() {
+        return port;
+    }
+
+    public void setPort(int port) {
+        this.port = port;
+    }
+
+    @Bean
+    public RestHighLevelClient client(){
+        return new RestHighLevelClient(RestClient.builder(
+                new HttpHost(
+                        "47.93.189.255",
+                        8087,
+                        "http"
+                )
+        ));
+    }
+}
+
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/EsModel.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/EsModel.java
index d32642f..fdd5763 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/EsModel.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/EsModel.java
@@ -2,7 +2,6 @@
 
 
 import lombok.Data;
-import org.springframework.data.annotation.Id;
 import org.springframework.data.elasticsearch.annotations.Document;
 import org.springframework.data.elasticsearch.annotations.Field;
 import org.springframework.data.elasticsearch.annotations.FieldType;
@@ -16,55 +15,55 @@
  * @author feige
  * @date 2023-09-14
  */
-@Document(indexName = "allsearch")
+@Document(indexName = "allsearchdata")
 @Data
 public class EsModel {
 
     /*** 绱㈠紩id*/
-    @Id
     @Field(type = FieldType.Text)
     private String id;
 
     /**** es涓搴旂殑鏁版嵁搴撲笟鍔″崟鎹甶d*/
-    @Field(analyzer = "ik_max_word")
+    @Field(index = true,type = FieldType.Long)
     private Long ctId;
 
     /**** es涓笟鍔℃暟鎹� 瀵瑰簲鐨勪笟鍔℃暟鎹簱琛ㄥ悕绉�*/
-    @Field(analyzer = "ik_max_word")
+    @Field(type = FieldType.Text,analyzer = "ik_max_word")
     private String ctTableName;
 
     /**** es涓笟鍔℃暟鎹� 瀵瑰簲鐨� 涓氬姟绠�绉�*/
-    @Field(analyzer = "ik_max_word")
+    @Field(index = true,type = FieldType.Text,analyzer = "ik_max_word")
     private String ctName;
 
 
     /**** es涓笟鍔℃暟鎹� 瀵瑰簲鐨� 涓氬姟鍐呭璇︾粏淇℃伅*/
-    @Field(analyzer = "ik_max_word")
+    @Field(index = true,type = FieldType.Text
+            ,analyzer = "ik_max_word")
     private String ctContent;
 
 
     /** 澶囨敞 */
-    @Field(analyzer = "ik_max_word")
+    @Field(index = true,type = FieldType.Text,analyzer = "ik_max_word")
     private String remark;
 
     /** 澶囩敤1 */
-    @Field(analyzer = "ik_max_word")
+    @Field(index = true,type = FieldType.Text,analyzer = "ik_max_word")
     private String by1;
 
     /** 澶囩敤2 */
-    @Field(analyzer = "ik_max_word")
+    @Field(index = true,type = FieldType.Text,analyzer = "ik_max_word")
     private String by2;
 
     /** 澶囩敤3 */
-    @Field(analyzer = "ik_max_word")
+    @Field(index = true,type = FieldType.Text,analyzer = "ik_max_word")
     private String by3;
 
     /** 澶囩敤4 */
-    @Field(analyzer = "ik_max_word")
+    @Field(index = true,type = FieldType.Text,analyzer = "ik_max_word")
     private String by4;
 
     /** 澶囩敤5 */
-    @Field(analyzer = "ik_max_word")
+    @Field(type = FieldType.Text,analyzer = "ik_max_word")
     private String by5;
 
 }
diff --git a/zhang-content/src/main/java/com/ruoyi/service/esService.java b/zhang-content/src/main/java/com/ruoyi/service/esService.java
index 2be3556..f41663e 100644
--- a/zhang-content/src/main/java/com/ruoyi/service/esService.java
+++ b/zhang-content/src/main/java/com/ruoyi/service/esService.java
@@ -2,6 +2,12 @@
 
 import com.ruoyi.common.core.domain.entity.EsModel;
 
+import java.util.List;
+
 public interface esService {
+    //  鎻掑叆绱㈠紩
     public int insertTable(EsModel esModel);
+
+    //
+    public List<EsModel> findByCondition(String con);
 }
diff --git a/zhang-content/src/main/java/com/ruoyi/service/impl/ZfEventServiceImpl.java b/zhang-content/src/main/java/com/ruoyi/service/impl/ZfEventServiceImpl.java
index 8b5908f..e3688dd 100644
--- a/zhang-content/src/main/java/com/ruoyi/service/impl/ZfEventServiceImpl.java
+++ b/zhang-content/src/main/java/com/ruoyi/service/impl/ZfEventServiceImpl.java
@@ -313,26 +313,26 @@
 
     @Override
     public AjaxResult addData(ZfEvent zfEvent) {
-        ZInfoUser myself = zInfoUserService.getMyself();
-        Long familyId = myself.getFamilyId();
-
-        if(familyId == null){
-            throw new RuntimeException("鎮ㄨ繕鏈姞鍏ヤ换浣曞搴�");
-        }
-
-        List<ZAuthority> authority = zAuthorityService.getAuthority();
-        List<Long> familyIdList = authority.stream().filter(auth -> auth.getAuthority().toString().equals(EVENT_LIST_ADD)).map(ZAuthority::getFid).collect(Collectors.toList());
-        familyIdList.add(familyId);
-
-        if (zfEvent.getFamilyId()!=null && !familyIdList.contains(zfEvent.getFamilyId())) {
-            throw new RuntimeException("浣犳病鏈夋潈闄愭搷浣滄瀹跺涵鐨勬暟鎹�");
-        }
-
-
-        if(zfEvent.getFamilyId() == null){
-            //榛樿娣诲姞鑷繁瀹跺涵鐨勬暟鎹�
-            zfEvent.setFamilyId(familyId);
-        }
+//        ZInfoUser myself = zInfoUserService.getMyself();
+//        Long familyId = myself.getFamilyId();
+//
+//        if(familyId == null){
+//            throw new RuntimeException("鎮ㄨ繕鏈姞鍏ヤ换浣曞搴�");
+//        }
+//
+//        List<ZAuthority> authority = zAuthorityService.getAuthority();
+//        List<Long> familyIdList = authority.stream().filter(auth -> auth.getAuthority().toString().equals(EVENT_LIST_ADD)).map(ZAuthority::getFid).collect(Collectors.toList());
+//        familyIdList.add(familyId);
+//
+//        if (zfEvent.getFamilyId()!=null && !familyIdList.contains(zfEvent.getFamilyId())) {
+//            throw new RuntimeException("浣犳病鏈夋潈闄愭搷浣滄瀹跺涵鐨勬暟鎹�");
+//        }
+//
+//
+//        if(zfEvent.getFamilyId() == null){
+//            //榛樿娣诲姞鑷繁瀹跺涵鐨勬暟鎹�
+//            zfEvent.setFamilyId(familyId);
+//        }
 
         //鍒ゆ柇鏄惁鏈夐噸澶嶆暟鎹�
         LambdaQueryWrapper<ZfEvent> lqw = uniqueCondition(zfEvent);
@@ -358,6 +358,7 @@
             //   esModel.setCtName("澶у");
             //  esModel.setCtContent("澶у濂斤紝鎵嶆槸鐪熺殑濂�");//澶勪簨鐢�
             esSer.insertTable(esModel);
+
             return AjaxResult.success();
         } else {
             return AjaxResult.error();
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
index ff2cbbd..e043f0b 100644
--- a/zhang-content/src/main/java/com/ruoyi/service/impl/esServiceImpl.java
+++ b/zhang-content/src/main/java/com/ruoyi/service/impl/esServiceImpl.java
@@ -4,35 +4,68 @@
 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.SearchHits;
+import org.springframework.data.elasticsearch.core.query.NativeSearchQuery;
+import org.springframework.data.elasticsearch.core.query.NativeSearchQueryBuilder;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.List;
 
 @Service
 public class esServiceImpl implements esService {
     @Resource
     private EsRepository esRepository;
+    @Resource
+    private ElasticsearchRestTemplate elasticsearchRestTemplate;
     @Override
     public int insertTable(EsModel esModel) {
-       // EsModel esModel = new EsModel();
-      //  Integer integer = new Integer(123);
-      //  esModel.setId(Long.valueOf(integer));
-      //  esModel.setCtId(Long.valueOf(integer));
-       // esModel.setCtTableName("tb_ajk");
-         //   esModel.setCtName("澶у");
-          //  esModel.setCtContent("澶у濂斤紝鎵嶆槸鐪熺殑濂�");//澶勪簨鐢�
-//            esModel.setBy1(tbAjk.getLaay());//妗堢敱
-//            esModel.setBy2(tbAjk.getAjlb());//绫诲埆
-//            esModel.setBy3(tbAjk.getCjnr());//鍐呭
-//            esModel.setBy4(tbAjk.getContent());//鍑哄唴瀹�
-//            esModel.setBy5(tbAjk.getCbpcs());//鎵垮姙
-//            esModel.setRemark(tbAjk.getJyaq());//绠�瑕佹儏
         try {
             esRepository.save(esModel);
+           // esRepository.searchSimilar()
         } catch (Exception e) {
-            System.out.println("dddddddddddd");
+            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));
+
+        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;
+
+    }
 }

--
Gitblit v1.9.1