首页 > 其他分享 >elasticsearch创建索引带mappings和settings

elasticsearch创建索引带mappings和settings

时间:2023-08-23 17:33:27浏览次数:40  
标签:index false mappings keyword settings elasticsearch type id

一、通过kabana控制台创建

我们在kabana控制台创建一个record_feature_tag的索引,对应的mapping配置如下

PUT /record_feature_tag
{
  "mappings": {
    "properties" : {
        "_class" : {
          "type" : "keyword"
        },
        "api" : {
          "type" : "keyword"
        },
        "app_name" : {
          "type" : "keyword"
        },
        "gmt_create" : {
          "type" : "long"
        },
        "has_case" : {
          "type" : "boolean"
        },
        "source_id" : {
          "type" : "keyword"
        },
        "sum" : {
          "type" : "long"
        },
        "tagMap" : {
          "properties" : {
            "app_id" : {
              "type" : "keyword"
            },
            "group_type" : {
              "type" : "keyword"
            },
            "method" : {
              "type" : "keyword"
            },
            "origin_app_id" : {
              "type" : "keyword"
            },
            "result_code" : {
              "type" : "keyword"
            }
          }
        },
        "timestamp" : {
          "type" : "date"
        }
      }
  },
  "settings": {
    "number_of_shards": 3
  }
}

二、通过代码创建

@Slf4j
public class Test {

    String recordMappings = "{\n" +
            "    "properties": {\n" +
            "        "_class": {\n" +
            "            "type": "keyword",\n" +
            "            "index": false,\n" +
            "            "doc_values": false\n" +
            "        },\n" +
            "        "agg_api": {\n" +
            "            "type": "keyword"\n" +
            "        },\n" +
            "        "api": {\n" +
            "            "type": "keyword"\n" +
            "        },\n" +
            "        "app_name": {\n" +
            "            "type": "keyword"\n" +
            "        },\n" +
            "        "async": {\n" +
            "            "type": "long"\n" +
            "        },\n" +
            "        "caseSet": {\n" +
            "            "type": "text"\n" +
            "        },\n" +
            "        "entrance": {\n" +
            "            "type": "keyword"\n" +
            "        },\n" +
            "        "env": {\n" +
            "            "type": "keyword"\n" +
            "        },\n" +
            "        "git_version": {\n" +
            "            "type": "keyword"\n" +
            "        },\n" +
            "        "gmtRecord": {\n" +
            "            "type": "long"\n" +
            "        },\n" +
            "        "gmt_create": {\n" +
            "            "type": "long"\n" +
            "        },\n" +
            "        "host": {\n" +
            "            "type": "keyword"\n" +
            "        },\n" +
            "        "id": {\n" +
            "            "type": "keyword"\n" +
            "        },\n" +
            "        "instance_name": {\n" +
            "            "type": "text",\n" +
            "            "index": false\n" +
            "        },\n" +
            "        "recordType": {\n" +
            "            "type": "keyword"\n" +
            "        },\n" +
            "        "request": {\n" +
            "            "type": "text",\n" +
            "            "index": false\n" +
            "        },\n" +
            "        "requestType": {\n" +
            "            "type": "keyword"\n" +
            "        },\n" +
            "        "response": {\n" +
            "            "type": "text",\n" +
            "            "index": false\n" +
            "        },\n" +
            "        "subInvocationBrief": {\n" +
            "            "type": "keyword",\n" +
            "            "index": false\n" +
            "        },\n" +
            "        "tags": {\n" +
            "            "properties": {\n" +
            "                "id": {\n" +
            "                    "type": "keyword"\n" +
            "                },\n" +
            "                "label": {\n" +
            "                    "type": "keyword"\n" +
            "                },\n" +
            "                "show": {\n" +
            "                    "type": "boolean"\n" +
            "                },\n" +
            "                "value": {\n" +
            "                    "type": "keyword"\n" +
            "                }\n" +
            "            }\n" +
            "        },\n" +
            "        "trace_id": {\n" +
            "            "type": "keyword"\n" +
            "        },\n" +
            "        "version": {\n" +
            "            "type": "integer"\n" +
            "        },\n" +
            "        "wrapper_record": {\n" +
            "            "type": "keyword",\n" +
            "            "index": false\n" +
            "        }\n" +
            "    }\n" +
            "}";

    @Resource(name = "elasticSearchRestTemplate")
    ElasticsearchRestTemplate elasticsearchRestTemplate;

    /**
     * 创建索引
     * @param indexName
     */
    public void createIndex(String indexName) {
        Map<String, Object> settings = new HashMap<>();
        settings.put("index.number_of_shards", 2);
        IndexOperations indexOperations = elasticsearchRestTemplate.indexOps(indexName);
        if (indexOperations.exists()) {
            return;
        }
        try {
            Document mapping = Document.parse(recordMappings);
            if (!indexOperations.exists()) {
                indexOperations.create(settings, mapping);
            }

        } catch (Exception e) {
            log.error("system error", e);
        }
    }
}

标签:index,false,mappings,keyword,settings,elasticsearch,type,id
From: https://www.cnblogs.com/viogs/p/17652300.html

相关文章

  • Elasticsearch查询更新
    Elasticsearch支持多种查询和更新操作。以下是一些常见的查询和更新操作示例:查询所有文档:根据条件查询文档:GET/index_name/_search{"query":{"match":{"field_name":"search_term"}}}更新文档:POST/index_name/_up......
  • elasticsearch
    最典型的是两个应用场景:全文检索 和 复杂查询。正排索引,也叫正向索引(ForwardIndex),是通过文档ID去查找关键词(文档内容)。倒排索引,也叫反向索引(InvertedIndex),是通过关键词查找文档ID。must:其查询子句必须全部被满足,逻辑相当于and,并且会计算分数。filter:与must作用一......
  • Elasticsearch实战 | match_phrase搜不出来,怎么办?
    1、问题抛出某个词组在Elasitcsearch中的某个document中存在,就一定通过某种匹配方式把它搜出来。举例:title=公路局正在治理解放大道路面积水问题。输入关键词:道路,能否搜索到这个document呢?实际应用中可能需要:1)检索关键词”理解”、”解放”、”道路”、“理解放大”,都能搜出......
  • 记:Elasticsearch 的 告警机制 和 jvm 内存分配
    Elasticsearch的告警机制导致的更新失败问题总结:由于测试环境资源占用比例过高导致elasticsearch触发保护机制,导致的更新失败的问题Es告警日志:查看服务器资源使用情况:此时Es所在的挂载磁盘已经占用了95%,Es默认的保护机制:属性名属性值(可配置为固定值)含义保......
  • 深入了解Elasticsearch搜索引擎篇:倒排索引、架构设计与优化策略
    什么是倒排索引?有什么好处?倒排索引是一种用于快速检索的数据结构,常用于搜索引擎和数据库中。与传统的正排索引不同,倒排索引是根据关键词来建立索引,而不是根据文档ID。倒排索引的建立过程如下:首先,将每个文档拆分成一系列的关键词或词项,然后建立一个词项到文档的映射。对每个关键......
  • 解密Nginx与Elasticsearch的协同高效:深入理解反向代理与全文搜索
    在当今高度互联的网络环境中,后端技术的结合与优化对于构建高性能应用至关重要。本篇博客将聚焦于两个关键主题:Nginx反向代理和Elasticsearch全文搜索,通过深入分析实现原理和代码示例,展示它们如何协同工作以提升系统性能。Nginx反向代理的作用Nginx不仅仅是一款高性能的Web服务器,还......
  • 构建高性能后端:探秘Nginx与Elasticsearch的技术协同
    在如今的信息时代,高性能的后端技术对于应用的成功至关重要。本文将深入探讨两个关键技术领域:Nginx反向代理和Elasticsearch全文搜索。通过详细的原理解析和实际代码示例,揭示它们如何协同工作,为应用的性能和效率提供强大支持。Nginx反向代理:背后的原理Nginx不仅是一款优秀的Web服务......
  • Nginx与Elasticsearch:高性能后端的黄金组合
    在追求高性能的后端开发中,Nginx与Elasticsearch是两个不可或缺的技术利器。本文将深入剖析这两者,探讨它们的协同作用,通过深入原理解析和实用代码示例,揭示它们如何共同构建高效的后端系统。构建高性能后端的首选:Nginx反向代理Nginx不仅是一款出色的Web服务器,还是一款强大的反向代理......
  • Nginx与Elasticsearch:高性能后端的完美融合
    在追求卓越后端性能的道路上,Nginx与Elasticsearch是一对黄金组合。本文将从深度原理解析和实际代码示例两个方面,探索这两项技术的协同作用,揭示它们如何共同构建高效的后端系统。打造高性能后端:Nginx反向代理Nginx不仅仅是一款优秀的Web服务器,更是一款强大的反向代理工具。通过将客......
  • 深入探索Elasticsearch的分布式搜索与性能优化
    在后端开发领域,Elasticsearch作为一款强大的分布式搜索与分析引擎,被广泛应用于构建高性能的搜索和数据分析系统。本文将深入探讨Elasticsearch的分布式特性、搜索原理以及性能优化策略。通过结合实际代码示例,为读者提供关于Elasticsearch的深奥知识和实用方法。1.Elasticsearch概......