zoukankan      html  css  js  c++  java
  • elasticsearch入门(二 基础api实例)

    本人目前使用的版本是2.0.0

     

    client 

    基础代码如下

    Settings settings = Settings.settingsBuilder().put("cluster.name","jiangnan_cluster").put("client.transport.sniff", true).build();
    try {
        ElasticClient client = TransportClient.builder().settings(settings).build()
                .addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("172.24.3.95"), 9300))
                .addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("172.24.3.96"), 9300))
                .addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("172.24.3.97"), 9300));
    } catch (UnknownHostException e) {
        e.printStackTrace();
    }

    官网demo

    https://www.elastic.co/guide/en/elasticsearch/client/java-api/2.0/transport-client.html

    官网给的demo 并没有设置setting 的方式,使用后会有

    None of the configured nodes are available 异常

     

    create index

    基础代码如下 

    Map<String, Object> json = new HashMap<String, Object>();
            json.put("user","jn");
            json.put("postDate",new Date());
            json.put("message", "trying out Elasticsearch");
            IndexResponse response = client.prepareIndex("index", “type”, ”1")
                    .setSource(json)
                    .get();
    

    如果 此处 id 不自己定义, es 会创建一个默认的随机码(还未细看具体实现)似的编码 如:AVRCKiIlXmm1GX2hHZvw

    官网demo

    https://www.elastic.co/guide/en/elasticsearch/client/java-api/2.0/java-docs-index.html

     

    get index

    基础代码如下

    GetResponse response = client.prepareGet("index", "type", "1")
                    .setOperationThreaded(false)
                    .get();
            System.out.println(response.getSourceAsString()); 

    注:setOperationThreaded 

    operationthreaded 默认为 true,此处显示的设置为false 代表 非多线程模式

    官网demo

    https://www.elastic.co/guide/en/elasticsearch/client/java-api/2.0/java-docs-get.html

     

    delete index  同 get index

    官网demo

    https://www.elastic.co/guide/en/elasticsearch/client/java-api/2.0/java-docs-delete.html

     

    update index

    基础代码如下

    Map<String, Object> json = new HashMap<String, Object>();
            json.put("id","ss");
            json.put("user","jbbcn");
            json.put("postDate",new Date());
            json.put("message", "trying out Elasticsearch");
            try {
                UpdateRequest request = new UpdateRequest("index","type","1")
                        .doc(jsonBuilder().startObject().field("user", "zy").endObject());
                UpdateResponse response = client.update(request).get();
                System.out.println(response.getVersion());
            } catch (IOException e) {
                e.printStackTrace();
            } catch (InterruptedException e) {
                e.printStackTrace();
            } catch (ExecutionException e) {
                e.printStackTrace();
            }
    

      

              

    官网demo

    https://www.elastic.co/guide/en/elasticsearch/client/java-api/2.0/java-docs-update.html

     

    bulk

    基础代码如下

    BulkRequestBuilder request = client.prepareBulk();
            BulkResponse response = null;
            try {
                response = request
                        .add(client.prepareIndex("index", "type", "2")
                                .setSource(jsonBuilder().startObject().field("user", "jn5").endObject()))
                        .add(client.prepareIndex("index", "type", "3")
                                .setSource(jsonBuilder().startObject().field("user", "jn3").endObject()))
                        .add(client.prepareDelete("index","type","3"))
                        .get();
            } catch (IOException e) {
                e.printStackTrace();
            }
            System.out.println(response.toString());
    

      

    此处作用是将多个操作合并为一个request 操作

    官网demo

    https://www.elastic.co/guide/en/elasticsearch/client/java-api/2.0/java-docs-bulk.html

     

    search index

    基础代码如下

    SearchResponse response = client.prepareSearch("index")
                    .setTypes("type")
                    .setSearchType(SearchType.DFS_QUERY_THEN_FETCH)
                    .setQuery(QueryBuilders.termQuery("message","out"))
                    .setPostFilter(QueryBuilders.existsQuery("id”))//只获取包含 id field 的 结果
                    .setFrom(0).setSize(10).setExplain(true)
                    .execute()
                    .actionGet();
            SearchHits searchHits = response.getHits();
            System.out.println(searchHits.hits().length);
            for(SearchHit hitFields:searchHits.getHits()){
                System.out.println(hitFields.getSource().toString());
            }
    
            System.out.println(response.getHits().toString());
    //        获取所有数据
    //        SearchResponse response = client.prepareSearch().execute().actionGet();
    

      

    官网demo

    https://www.elastic.co/guide/en/elasticsearch/client/java-api/2.0/java-search.html

  • 相关阅读:
    Swift 扩展
    Swift 类型转换
    Swift 自动引用计数(ARC)
    Swift 可选链
    Swift 析构过程
    Swift 构造过程
    Swift 继承
    Swift 下标脚本
    Swift 方法
    Swift 属性
  • 原文地址:https://www.cnblogs.com/icoding/p/5446036.html
Copyright © 2011-2022 走看看