zoukankan      html  css  js  c++  java
  • elasticsearchTemplate操作es

    ElasticsearchTemplate是spring对java api的封装

    maven依赖:

    <dependency>
        <groupId>org.springframework.data</groupId>
        <artifactId>spring-data-elasticsearch</artifactId>
        <version>3.1.8.RELEASE</version>
    </dependency>

    spring bean配置 spring-es.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xmlns:elasticsearch="http://www.springframework.org/schema/data/elasticsearch"
           xmlns:context="http://www.springframework.org/schema/context"
           xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
                                http://www.springframework.org/schema/data/elasticsearch http://www.springframework.org/schema/data/elasticsearch/spring-elasticsearch.xsd
                                http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
    
        <elasticsearch:transport-client id="client"
                                        cluster-nodes="192.168.71.137:9300"
                                        cluster-name="large-data-transfer-platform"/>
        <bean name="elasticsearchTemplate"
              class="org.springframework.data.elasticsearch.core.ElasticsearchTemplate">
            <constructor-arg ref="client"/>
        </bean>
    </beans>

    autowired注入实例:

    @Autowired
    private ElasticsearchTemplate elasticsearchTemplate;

    分页查询demo:

            BoolQueryBuilder boolQuery = QueryBuilders.boolQuery();
            if (params.get("uuid") != null && StringUtils.isNotBlank(params.get("uuid").toString())) {
                boolQuery.must(QueryBuilders.matchPhraseQuery("article_id", params.get("uuid")));
            }
            if (params.get("subject_id") != null && StringUtils.isNotBlank(params.get("subject_id").toString())) {
                boolQuery.must(QueryBuilders.matchPhraseQuery("subject_id", params.get("subject_id")));
            }
            if (params.get("title_like") != null && StringUtils.isNotBlank(params.get("title_like").toString())) {
                boolQuery.must(QueryBuilders.matchPhraseQuery("title", params.get("title_like")));
            }
            if (params.get("content_like") != null && StringUtils.isNotBlank(params.get("content_like").toString())) {
                boolQuery.must(QueryBuilders.matchPhraseQuery("content", params.get("content_like")));
            }
            Pageable pageable= new PageRequest(Integer.parseInt(String.valueOf(params.get("start"))), Integer.parseInt(String.valueOf(params.get("limit"))),new Sort(Sort.Direction.DESC, "update_time"));
            NativeSearchQuery searchQuery = new NativeSearchQueryBuilder()
                    .withIndices(centerIndexName)
                    .withTypes(centerArticleTypeName)
                    .withQuery(boolQuery)
                    .withPageable(pageable)
                    .build();
            List<Map> maps = elasticsearchTemplate.queryForList(searchQuery, Map.class);
            System.out.println(JSON.toJSONString(maps));
  • 相关阅读:
    骨骼动画的原理及在Unity中的使用
    GUI之ScrollView的使用
    Java编程技术之浅析Java容器技术
    Linux系统 Centos7 环境基于Docker部署Rocketmq服务
    Linux系统环境基于Docker搭建Mysql数据库服务实战
    Java编程技术之浅析JVM内存
    Java编程技术之浅析SPI服务发现机制
    Linux系统环境基于Docker搭建系统基础镜像
    Linux Centos7 环境搭建Docker部署Zookeeper分布式集群服务实战
    Linux Centos7 环境基于Docker部署Zookeeper服务搭建实战
  • 原文地址:https://www.cnblogs.com/chenmz1995/p/10995307.html
Copyright © 2011-2022 走看看