• ElasticSearch 例子


    ElasticSearch是一个接近实时的搜索平台,它利用Lucese进行文档索引。

    本文会写个可以运行的简单例子,方便大家上手,日后深入了解。

    需要引入maven依赖

    <dependency>
    <groupId>org.elasticsearch</groupId>
    <artifactId>elasticsearch</artifactId>
    <version>5.1.1</version>
    </dependency>
    <dependency>
    <groupId>org.elasticsearch.client</groupId>
    <artifactId>transport</artifactId>
    <version>5.1.1</version>
    </dependency>
    <dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-core</artifactId>
    <version>2.9.0</version>
    </dependency>

    然后是测试主程序

    import org.elasticsearch.action.index.IndexResponse;
    import org.elasticsearch.action.search.SearchResponse;
    import org.elasticsearch.client.transport.TransportClient;
    import org.elasticsearch.common.settings.Settings;
    import org.elasticsearch.common.transport.InetSocketTransportAddress;
    import org.elasticsearch.index.query.QueryBuilder;
    import org.elasticsearch.index.query.QueryBuilders;
    import org.elasticsearch.search.SearchHit;
    import org.elasticsearch.search.SearchHits;
    import org.elasticsearch.search.sort.SortOrder;
    import org.elasticsearch.transport.client.PreBuiltTransportClient;
    
    import java.net.InetAddress;
    import java.net.UnknownHostException;
    import java.util.Date;
    import java.util.HashMap;
    import java.util.Map;
    
    /**
     * Created by joe on 2017/9/25.
     */
    public class ElasticSearch {
        public static void main(String[] args) {
            TransportClient client;
            Settings esSettings = Settings.builder()
                    .put("cluster.name", "elasticsearch") //设置ES实例的名称
                    .put("client.transport.sniff", true) //自动嗅探整个集群的状态,把集群中其他ES节点的ip添加到本地的客户端列表中
                    .build();
            client = new PreBuiltTransportClient(esSettings);//初始化client较老版本发生了变化,此方法有几个重载方法,初始化插件等。
            //此步骤添加IP,至少一个,其实一个就够了,因为添加了自动嗅探配置
            try {
                client.addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("localhost"), 9300));
            } catch (UnknownHostException e) {
                e.printStackTrace();
            }
            Map<String,Object> infoMap = new HashMap<String, Object>();
            infoMap.put("name", "广告信息11");
            infoMap.put("title", "我的广告22");
            infoMap.put("createTime", new Date());
            infoMap.put("count", 1022);
            IndexResponse indexResponse = client.prepareIndex("test", "info","100").setSource(infoMap).
                    execute().actionGet();
    
            QueryBuilder rangeQueryBuilder = QueryBuilders.rangeQuery("count").gt(50);
            SearchResponse searchResponse = client.prepareSearch("test")
                    .setTypes("info")
                    .setQuery(rangeQueryBuilder)
                    .addSort("count", SortOrder.DESC)
                    .setSize(20)
                    .execute()
                    .actionGet();
            SearchHits hits = searchResponse.getHits();
            System.out.println("查到记录数:" + hits.getTotalHits());
            SearchHit[] searchHists = hits.getHits();
            if(searchHists.length>0){
                for(SearchHit hit:searchHists){
                    String name =  (String) hit.getSource().get("name");
                    Integer age = (Integer)hit.getSource().get("count");
                    String date = (String) hit.getSource().get("createTime");
                    System.out.format("name:%s ,count :%d, createTime:%s
    ", name, age, date);
                }
            }
    
    
        }
    }
    

      

    不要忘了配置 log4j2.properties

    appender.console.type = Console
    appender.console.name = console
    appender.console.layout.type = PatternLayout
    
    rootLogger.level = info
    rootLogger.appenderRef.console.ref = console
    

    以上就可以了。

    tips: jdk8以下可能会遇到问题。

  • 相关阅读:
    Webpack 打包 14. html压缩
    webpack优化环境配置 18.HMR
    Webpack 打包 10. 压缩CSS
    Wenpack 打包 15. 生产环境配置(提取JS中的CSS、压缩CSS、压缩html、eslint语法检查...)
    Webpack 打包 13. 压缩JS
    webpack优化环境配置 17.优化配置介绍
    Webpack 打包 11. eslint 语法检查
    AtCoder Beginner Contest 258
    AtCoder Beginner Contest 259
    AtCoder Beginner Contest 261
  • 原文地址:https://www.cnblogs.com/zhangjwcode/p/7598109.html
Copyright © 2020-2023  润新知