zoukankan      html  css  js  c++  java
  • Java操作ElasticSearch

    maven引入

    <!-- https://mvnrepository.com/artifact/org.elasticsearch/elasticsearch -->
    <dependency>
    <groupId>org.elasticsearch</groupId>
    <artifactId>elasticsearch</artifactId>
    <version>6.2.3</version>
    </dependency>

    <dependency>
    <groupId>org.elasticsearch.client</groupId>
    <artifactId>transport</artifactId>
    <version>6.2.3</version>
    <exclusions>
    <exclusion>
    <groupId>org.elasticsearch</groupId>
    <artifactId>elasticsearch</artifactId>
    </exclusion>
    </exclusions>
    </dependency>

    1、创建索引

    @Override
    public DataWrapper<Void> createIndex(String index, String mapping) {//其中mapping对应下表格中非标红的的定义
    DataWrapper<Void> dw = new DataWrapper<Void>();
    try {
    client.admin().indices().prepareCreate(index).setSource(mapping, XContentType.JSON).execute().actionGet();
    } catch (Exception e) {
    log.error(e.getMessage(), e);
    dw.setCallStatus(CallStatusEnum.FAILED);
    dw.setMessage(e.getMessage());
    }
    return dw;
    }

    创建索引的mapping:

    put test
    {
    "mappings": {
    "test": {
    "properties": {
    "name": {
    "type": "keyword"
    },
    "question": {
    "type": "text",
    "analyzer": "ik"
    }
    }
    }
    },
    "settings": {
    "number_of_shards": "5",
    "analysis": {
    "analyzer": {
    "ik": {
    "type": "standard",
    "tokenizer": "ik_max_word"
    }
    }
    },
    "number_of_replicas": "1"
    }
    }

    2、删除索引

    @Override
    public DataWrapper<Void> deleteIndex(String index) {
    DataWrapper<Void> dw = new DataWrapper<Void>();
    try {
    client.admin().indices().prepareDelete(index).execute().actionGet();
    } catch (Exception e) {
    log.error(e.getMessage(), e);
    dw.setCallStatus(CallStatusEnum.FAILED);
    dw.setMessage(e.getMessage());
    }
    return dw;
    }

    3、修改索引

    ①添加字段

    @Override
    public DataWrapper<Void> updateIndex(String index, String type, String mapping) {//其中mapping对应下表格中非标红的的定义
    DataWrapper<Void> dw = new DataWrapper<Void>();
    try {
    client.admin().indices().preparePutMapping(index).setType(type).setSource(mapping, XContentType.JSON).execute().actionGet();
    } catch (Exception e) {
    log.error(e.getMessage(), e);
    dw.setCallStatus(CallStatusEnum.FAILED);
    dw.setMessage(e.getMessage());
    }
    return dw;
    }

    put test/test/_mapping
    {
    "properties": {
    "code": {
    "type": "keyword"
    }
    }
    }

    ②修改索引配置

    @SuppressWarnings("unused")
    @Override
    public DataWrapper<Void> updateSetting(String index, String type, String mapping) {//其中mapping对应下表格中非标红的的定义
    DataWrapper<Void> dw = new DataWrapper<Void>();
    try {
    UpdateSettingsRequest request = new UpdateSettingsRequest(index);
    request.settings(mapping, XContentType.JSON);

    boolean acknowledged = client.admin().indices().updateSettings(request).actionGet().isAcknowledged();
    } catch (Exception e) {
    log.error(e.getMessage(), e);
    dw.setCallStatus(CallStatusEnum.FAILED);
    dw.setMessage(e.getMessage());
    }
    return dw;
    }

    PUT test/_settings
    {
    "index":{
    "max_result_window":50000
    }
    }

  • 相关阅读:
    nfs只能挂载为nobody的解决方法
    Mysql一些记忆
    shell中交互输入自动化
    关闭SElinux
    《Windows核心编程系列》十谈谈同步设备IO与异步设备IO之异步IO
    《Windows核心编程系列》九谈谈同步设备IO与异步设备IO之同步设备IO
    《Windows核心编程系列》八谈谈用内核对象进行线程同步
    《windows核心编程系列》七谈谈用户模式下的线程同步
    《windows核心编程系列 》六谈谈线程调度、优先级和关联性
    《windows核心编程系列》五谈谈线程基础
  • 原文地址:https://www.cnblogs.com/wangymd/p/11139856.html
Copyright © 2011-2022 走看看