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