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));
  • 相关阅读:
    记录第一次阿里云服务器部署java web工程的经历
    常用网站……
    根据ID获取CEdit的句柄实例
    (转)MFC中获得各个类的指针/句柄 ID的总结
    (转)DoDataExchange执行时机
    深入浅出Visual_C动态链接库(Dll)编程(宋宝华)----整理(word)
    (转)MFC的一些宏的整理 (DECLARE_DYNCREATE/IMPLEMENT_DYNCREATE)
    Socket 学习入门
    (转) 新的开始之Win7、CentOS 6.4 双系统 硬盘安装
    WIN7下使用VC2010调试uCOS-II 2.91
  • 原文地址:https://www.cnblogs.com/chenmz1995/p/10995307.html
Copyright © 2011-2022 走看看