jdxyzlh 发表于 2019-1-29 07:15:28

elasticsearch java api

  一、获取elasticsearch Client是简单的,最普遍的方法是创建连接cluster 的TransportClient。
  注意:这个client 的版本和你在电脑上打开的服务器的主要的版本是一样的(e.g. 2.x, or 5.x)

  The client must have the same major version (e.g. 2.x, or 5.x) as the nodes in the cluster. Clients may connect to clusters which have a different minor version (e.g.2.3.x) but it is possible that new functionality may not be supported.>  二、transportclient 创建
TransportClient client = new PreBuiltTransportClient(Settings.EMPTY)  
      .addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("host1"), 9300))
  
      .addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("host2"), 9300));
  

  
// on shutdown
  

  
client.close();
  Note that you have to set the cluster name if you use one different than "elasticsearch":
Settings settings = Settings.builder()  
      .put("cluster.name", "myClusterName").build();
  
TransportClient client = new PreBuiltTransportClient(settings);
  
//Add transport addresses and do something with the client...
  三、DocumentAPIS
  这部分描述的是增删改查。
  单个文档的APIS有Index API ,GET API, DELETE API,DELETE BY QUERY API,UPDATE API。
  多个文档APIS 有:Multi Get API ,Bulk API
  注意:All CRUD APIs are single-index APIs. The index parameter accepts a single index name, or an alias(别名) which points to a single index.
  Index API
  Index API 在特定的index中索引一个Json类型的文档。
  创建json文件有四种方式:

[*]  Manually (手工)(aka do it yourself) using native byte[] or as a String
[*]  Using a Map that will be automatically converted to its JSON equivalent(相等的)
[*]  Using a third party library to serialize your beans such as Jackson
[*]  Using built-in helpers XContentFactory.jsonBuilder()
  在内部,每种类型都转换为byte [](所以一个String被转换成一个byte [])。 因此,如果对象已经是这种形式,那么使用它。 jsonBuilder是高度优化的JSON生成器,它直接构造一个byte []。
  Using Map
edit
  Map is a key:values pair collection. It represents a JSON structure:
Map json = new HashMap();json.put("user","kimchy");json.put("postDate",new Date());json.put("message","trying out Elasticsearch");Use Elasticsearch helpersedit
  Elasticsearch provides built-in helpers to generate JSON content.
import static org.elasticsearch.common.xcontent.XContentFactory.*;XContentBuilder builder = jsonBuilder()  
    .startObject()
  
      .field("user", "kimchy")
  
      .field("postDate", new Date())
  
      .field("message", "trying out Elasticsearch")
  
    .endObject()
Index documentedit

  The following example indexes a JSON document into an index called twitter, under a type called tweet, with>import static org.elasticsearch.common.xcontent.XContentFactory.*;IndexResponse response = client.prepareIndex("twitter", "tweet", "1")  
      .setSource(jsonBuilder()
  
                  .startObject()
  
                        .field("user", "kimchy")
  
                        .field("postDate", new Date())
  
                        .field("message", "trying out Elasticsearch")
  
                  .endObject()
  
                  )
  
      .get();

  Note that you can also index your documents as JSON String and that you don’t have to give an>String json = "{" +  
      "\"user\":\"kimchy\"," +
  
      "\"postDate\":\"2013-01-30\"," +
  
      "\"message\":\"trying out Elasticsearch\"" +
  
    "}";IndexResponse response = client.prepareIndex("twitter", "tweet")
  
      .setSource(json)
  
      .get();
  IndexResponse object will give you a report:
// Index nameString _index = response.getIndex();// Type nameString _type = response.getType();// Document ID (generated or not)String _id = response.getId();// Version (if it's the first time you index this document, you will get: 1)long _version = response.getVersion();// status has stored current instance statement.RestStatus status = response.status();

页: [1]
查看完整版本: elasticsearch java api