首页 > 其他分享 >ElasticSearch-Mapping类型映射-增删改查

ElasticSearch-Mapping类型映射-增删改查

时间:2023-07-17 15:11:07浏览次数:48  
标签:9200 0.1 text 改查 Mapping 字段 ElasticSearch type

https://www.elastic.co/guide/en/elasticsearch/reference/6.8/mapping.html

7.x版本后默认都是_doc类型

增加Mapping映射

先说一个特殊的字段_all

https://www.elastic.co/guide/en/elasticsearch/reference/6.8/mapping-all-field.html#mapping-all-field

  • _all 字段是一个特殊的包罗万象的字段,它将所有其他字段的值组合为一个字符串,并使用空格作为分隔符,然后对它进行分析和索引

    但_all字段不存储再数据库中。这意味着它可以被搜索,但不能被检索。

  • _all 字段允许您在文档中搜索值,而无需知道哪个字段包含该值。这使得它在开始使用新数据集时成为一个有用的选项

  • _all字段是一个text类型的字段,所以text类型有啥参数,它也能用!

  • _all字段会消耗一定的CPU运转和使用更多的磁盘空间,所以默认情况下,该字段是关闭的!

但是在6.0+版本后,请使用copy_to代替:

https://www.elastic.co/guide/en/elasticsearch/reference/6.8/copy-to.html#copy-to

**方法一:**
PUT  /库名/_mappings/类型名 
PUT /articles/_mappings/article
{
  // 6.0后没有_all字段
  /*"_all": {
    "enabled": true,
    "analyzer": "ik_max_word"
  },*/
  "properties": {
    "all_info": {
      "type": "text",
      "analyzer": "ik_max_word",
    },
    "title": {
      "type": "text", //字段的类型
      "analyzer": "ik_max_word", // 指定分词器
      //"include_in_all": true,  # 因为没有_all字段,所以要这个参数也被移除了,因为完全没必要,copy_to是你自己控制的。
      "copy_to": "all_info" // 代替_all,就是将这个字段的内容复制到指定字段中
      "boost": 2  // 表示相关性分数乘以2倍
    },
    "content": {
      "type": "text",
      "analyzer": "ik_max_word",
    },
    "article_id": {
      "type": "long",
    },
    "user_id": {
      "type": "long",
    },
    "status": {
      "type": "integer",
    },
    "create_time": {
      "type": "date",
    }
  }
}


**方法二:**

PUT  /库名
PUT http://127.0.0.1:9200/articles/
{
    "mappings": {
        "_doc": {
            "properties": {
                "article_id": {
                    "type": "long"
                },
                "user_id": {
                    "type": "long"
                },
                "title": {
                    "type": "text"
                }
            }
        }
    }
}

获取Mapping

获取某个索引库下的所有Mapping

*GET http://127.0.0.1:9200/<索引库名>/_mappings*

例:
GET http://127.0.0.1:9200/news/_mappings

获取索引库中指定类型名的Mapping

*GET http://127.0.0.1:9200/<索引库名>/_mapping/<类型名>*

例:
GET http://127.0.0.1:9200/news/_mapping/article

修改、增加Mapping中的字段

Mapping不能修改字段。只能允许增加。

增加:

直接用上面添加Mapping映射的方法来增加字段就可以了,语法是一样的。

修改:

es不支持,如果真要修改字段的属性,只能先添加新的Mapping,然后将旧的数据导出来再导入给新的Mapping。

  1. 添加新的索引库和Mapping映射

  2. 将源库中的数据导入到新的索引库中。(_reindex)

    https://www.elastic.co/guide/en/elasticsearch/reference/6.8/docs-reindex.html

curl -X POST 127.0.0.1:9200/_reindex -H 'Content-Type:application/json' -d '
{
  "source": {
    "index": "articles" // 指定源索引库
  },
  "dest": {
    "index": "articles_v2" // 新索引库
  }
}
'

标签:9200,0.1,text,改查,Mapping,字段,ElasticSearch,type
From: https://www.cnblogs.com/juelian/p/17560164.html

相关文章

  • 初始elasticSearch
    elasticSearch大致印象为什么用?mysql更擅长于crud等操作,当一张表达到百万级别时,检索速度过慢es检索速度快基本概念Index索引(两层意思)动词:类似mysql的insert名词:类似mysql的数据库type类型:类似mysql的具体表(指定了保存数据的类型,联系到了orm)Document文......
  • Elasticsearch date数据类型
    时间和日期类型是我们作为开发每天都会遇到的一种常见数据类型。和Java中有所不同,Elasticsearch 在索引创建之前并不是必须要创建索引的mapping。关系型数据库的思维就是在于写入数据之前,并不强制创建表结构。我们不用事先声明字段名称,字段类型以及长度等属性就可以直接向一个不......
  • ElasticSearch快照备份、还原
    快照备份备份和还原的前提:在配置文件elasticsearch.yml中设置path.repopath.repo:["D:\\elasticsearch-6.8.23\\elasticsearch-6.8.23\\snapshot_data"]创建快照仓库语法:PUThttp://127.0.0.1:9200/_snapshot/快照仓库名实例:创建一个名叫my_fs_backup的快照仓库PUThtt......
  • 2.ElasticSearch入门
    一、初步检索1、_catGET/_cat/nodes:查看所有结点GET/_cat/health:查看es的健康状况GET/_cat/master:查看主节点GET/_cat/indices:查看所有索引2、索引一个文档保存一个数据,保存在哪个索引的哪个类型下,指定用哪个唯一标识PUTcustomer/external/1:在customer......
  • 后台管理系统基础功能(增删改查)用例大全
    为方便平时写测试用例,整理如下:转自:https://www.cnblogs.com/wysk/archive/2018/01/05/8193091.html功能条件测试步骤测试数据预期结果备注搜索或查询 单独遍历各查询条件,测试按各查询条件是否都能够查询出相应的值. 查询出符合条件的记录  设置......
  • 1-ElasticSearch - Docker安装
    1、下载镜像文件dockerpullelasticsearch:7.4.2dockerpullkibana:7.4.22、创建实例创建文件夹和配置文件mkdir-p/mydata/elasticsearch/configmkdir-p/mydata/elasticsearch/dataecho"http.host:0.0.0.0">>/mydata/elasticsearch/config/elasticsearch.yml创......
  • Elasticsearch:使用 runtime fields 探索你的数据
    Elasticsearch考虑要提取字段的大量日志数据。为数据建立索引非常耗时,并且会占用大量磁盘空间,而你只想探索数据结构而无需预先提交schema。你知道你的日志数据包含你要提取的特定字段。在这种情况下,我们要关注@timestamp和消息字段。通过使用运行时字段(runtimefields),你可以......
  • 在Docker上实战ElasticSearch以及与SpringBoot集成
    简介项目地址:https://gitee.com/charlinchenlin/wysmallElasticsearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTfulweb接口。Elasticsearch是用Java语言开发的,并作为Apache许可条款下的开放源码发布,是一种流行的企业级搜索引擎。Elastic......
  • Docker安装ElasticSearch
    Docker安装ElasticSearch标签(空格分隔):linux安装ElasticSearch版本:elasticsearch:7.10.1mkdir-p/usr/local/elasticsearch/configmkdir-p/usr/local/elasticsearch/datachmod777-R/usr/local/elasticsearch/echo"http.host:0.0.0.0">>/usr/local/el......
  • 基于C#连接Mysql,并进行增删改查操作
    记录一下今天的学习内容。前置条件(括号里是我用的):VisualStudio (2022)、Mysql(8.0.33CommunityServer)、NavicatPremium(16) 1.开发准备首先,打开VisualStudio,选择控制台应用并创建,框架应该影响不大,我用的.net6.0然后新建一个名为MysqlDbContext.cs的项。......