• 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
    }
    }

  • 相关阅读:
    关于 Dev中的GridControl 中 GridView 的 PopulateColumns() 方法
    操作系统 页面置换算法LRU和FIFO
    C#中有哪些类型的数组
    博弈论:取石子问题
    java中 sleep 与 wait 的区别
    java 中 ArrayList LinkedList Vector 三者的异同点
    C# Mysql You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ????
    我在使用vs进行C#编程中常用的几个快捷键
    javascript 数据类型基础
    html5 <script>
  • 原文地址:https://www.cnblogs.com/wangymd/p/11139856.html
Copyright © 2020-2023  润新知