Elasticsearch+java 实例

Elasticsearch+java 实例

楼主刚刚踏入职场,主攻ES,为此写了这个文章主要教初学者一些知识,希望对你有用。

如何在idea上构建一个ES项目

  • 首先构建一个Maven项目,编辑pox.xml如下:


    
        org.elasticsearch.client
        transport
        5.4.3
    

    
        org.elasticsearch
        elasticsearch
        5.4.3
    

    
        org.apache.logging.log4j
        log4j-api
        2.8.2
    

    
        org.apache.logging.log4j
        log4j-core
        2.8.2
    


此时,如果你的网络不好,下载的依赖包可能不完整,导致报错无法找到此依赖,这时候你需要删除一些maven的临时文件,给大家分享一个脚本,放置于你的maven库路径下~/.m2下


# create by NettQun
REPOSITORY_PATH=/home/andyshen/.m2/repository
echo 正在搜索...
find $REPOSITORY_PATH -name "*lastUpdated*" | xargs rm -fr
echo 搜索完

ES的主要有两种java client

ES中主要包含了两种clent:transport client、 java rest client

TransportClient客户端

  • TransportClient 是ElasticSearch(java)客户端封装对象,使用transport远程连接到Elasticsearch集群,该transport node并不会加入集群,而是简单的向ElasticSearch集群上的节点发送请求。
  • 基于netty协议,端口9300,适合海量查询,性能好较为麻烦

Netty是由JBOSS提供的一个java开源框架。Netty提供异步的、事件驱动的网络应用程序框架和工具,用以快速开发高性能、高可靠性的网络服务器和客户端程序。

依赖


    org.elasticsearch.client
    transport
    6.4.1

代码实例

// on startup
TransportClient client = new PreBuiltTransportClient(Settings.EMPTY)    // @1
        .addTransportAddress(new TransportAddress(InetAddress.getByName("localhost"), 9300))     // @2
        .addTransportAddress(new TransportAddress(InetAddress.getByName("localhost"), 9300));   
 // on shutdown
 client.close();

Java REST客户端

  • Java Low Level REST Client:elasticsearch client低级别客户端。它允许通过http请求与Elasticsearch集群进行通信。API本身不负责数据的编码解码,由用户去编码解码。它与所有的ElasticSearch版本兼容。
  • Java High Level REST Client:Elasticsearch client官方高级客户端。基于低级客户端,它定义的API,已经对请求与响应数据包进行编码解码。
  • JAVA REST Client使用http协议 端口9200 上手简单,懂ES DSL查询即可

依赖


        org.elasticsearch.client
        elasticsearch-rest-client
        6.4.0

 
        org.elasticsearch.client
        elasticsearch-rest-high-level-client
     6.4.0
         pom

实例代码

RestHighLevelClient client = new RestHighLevelClient(
        RestClient.builder(
                new HttpHost("localhost", 9200, "http"),
                new HttpHost("localhost", 9201, "http")));

// close
client.close();

一些ES实例

目前主要包含13个实例,具体请转到github:https://github.com/AndyShen105/Elasticsearch-java-samples

Samples of Document API

  • test-1: del an index
  • test-2: create an index
  • test-3: upload a file into index
  • test-4: upload a data
  • test-5: obtain a doc
  • test-6: del a doc
  • test-7: upload a file with bulkprocesser into index

Samples of search API

  • test-8: a sample search
  • test-9: search with scroll
  • test-10: search with template

Samples of aggregation API

  • test-11: simple aggregation
  • test-12: aggregation stats
  • test-13: geo bounds aggregations

    可以的话麻烦点个赞,谢谢哦

你可能感兴趣的:(Elasticsearch+java 实例)