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/esServiceImpl.java | 61 +++++++++++++++++++++++------- 1 files changed, 47 insertions(+), 14 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 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