| | |
| | | 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; |
| | | |
| | | } |
| | | } |