基础33 ElasticSearch 手动建立和修改mapping 及 定制string类型数据是否分词

14人阅读 评论(0) 收藏 举报
分类:

基础33 ElasticSearch 手动建立和修改mapping 及 定制string类型数据是否分词

概述

1、如何建立索引

analyzed
not_analyzed
no

2、修改mapping

只能创建index时手动建立mapping,或者新增field mapping,但是不能update field mapping

PUT /website
{
  "mappings": {
    "article": {
      "properties": {
        "author_id": {
          "type": "long"
        },
        "title": {
          "type": "text",
          "analyzer": "english"
        },
        "content": {
          "type": "text"
        },
        "post_date": {
          "type": "date"
        },
        "publisher_id": {
          "type": "text",
          "index": "not_analyzed"
        }
      }
    }
  }
}
PUT /website
{
  "mappings": {
    "article": {
      "properties": {
        "author_id": {
          "type": "text"
        }
      }
    }
  }
}
{
  "error": {
    "root_cause": [
      {
        "type": "index_already_exists_exception",
        "reason": "index [website/co1dgJ-uTYGBEEOOL8GsQQ] already exists",
        "index_uuid": "co1dgJ-uTYGBEEOOL8GsQQ",
        "index": "website"
      }
    ],
    "type": "index_already_exists_exception",
    "reason": "index [website/co1dgJ-uTYGBEEOOL8GsQQ] already exists",
    "index_uuid": "co1dgJ-uTYGBEEOOL8GsQQ",
    "index": "website"
  },
  "status": 400
}
PUT /website/_mapping/article
{
  "properties" : {
    "new_field" : {
      "type" :    "string",
      "index":    "not_analyzed"
    }
  }
}

3、测试mapping

GET /website/_analyze
{
  "field": "content",
  "text": "my-dogs" 
}
GET website/_analyze
{
  "field": "new_field",
  "text": "my dogs"
}
{
  "error": {
    "root_cause": [
      {
        "type": "remote_transport_exception",
        "reason": "[4onsTYV][127.0.0.1:9300][indices:admin/analyze[s]]"
      }
    ],
    "type": "illegal_argument_exception",
    "reason": "Can't process field [new_field], Analysis requests are only supported on tokenized fields"
  },
  "status": 400
}

查看评论

Elasticsearch 5.X 自定义字段的Mapping

Mapping 定义前面有一个篇简单的关于mapping的博客,当时是基于2.4 版本。 elastic技术栈在最近很活跃,目前版本已经更新至5.x。5.x有了比较大的变化。2.4 版本的定义在5.x...
  • choelea
  • choelea
  • 2017-01-06 15:53:43
  • 3114

Elasticsearch索引mapping的写入、查看与修改

mapping的写入与查看首先创建一个索引:curl -XPOST "http://127.0.0.1:9200/productindex" {"acknowledged":true} 现在只创建了...
  • napoay
  • napoay
  • 2016-07-24 09:32:55
  • 49857

干货 | Elasticsearch5.X Mapping万能模板

0、引言在关系型数据库如Mysql中,设计库表需要注意的是: 1)需要几个表; 2)每个表有哪些字段; 3)表的主键及外键的设定——便于有效关联。 表的设计遵守范式约束,考虑表的可扩展性,避免...
  • wojiushiwo987
  • wojiushiwo987
  • 2017-10-30 20:23:17
  • 3406

Elasticsearch实战系列-mapping 设置

本篇主要讲解Mapping的一些相关配置与需要注意的地方,说到Mapping大家可能觉得有些不解,其实我大体上可以将Elasticsearch理解为一个RDBMS(关系型数据库,比如MySQL),那么...
  • FX_SKY
  • FX_SKY
  • 2016-02-29 17:49:20
  • 18389

elasticsearch 修改 mapping

Elasticsearch的mapping一旦创建,只能增加字段,而不能修改已经mapping的字段。但现实往往并非如此啊,有时增加一个字段,就好像打了一个补丁,一个可以,但是越补越多,最后自己都觉得...
  • yangshufengyrtyfyu
  • yangshufengyrtyfyu
  • 2014-07-28 15:11:14
  • 5131

ElasticSearch-PHP:自定义分词规则 Mappings的创建

由于项目索引的数据格式,综合优化的考虑 决定自定义ES的分词格式。 例如 项目的存储的数据可能是 a=1&a=2&b=3&c=4 检索的时候带过来的条件: a=2 , b=3 所以完全可以按照...
  • yw5201314
  • yw5201314
  • 2016-10-19 09:33:52
  • 1453

elasticsearch-mapping字段类型

1、text        该字段用于索引全文文本,例如电子邮件的正文或产品的描述。 对这些字段进行analyzed ,即通过分析器将其转换成索引之前的各个术语列表。 分析过程允许Elasticse...
  • gongpulin
  • gongpulin
  • 2017-11-18 18:30:41
  • 207

Elasticsearch教程,Elasticsearch Java API创建Mapping,指定分词器

先说  Elasticsearch  版本,我的  Elasticsearch  版本是2.x ,具体是2.0.2 ,所以参照的时候,请先核对版本,在版本相差大的情况下,先可以试试。 为什么要指...
  • oqqsoso123456
  • oqqsoso123456
  • 2017-05-29 10:40:02
  • 4059

elasticsearch mapping

es的mapping设置很关键,mapping设置不到位可能导致索引重建。如何更好的设置mapping?请看下面各个属性介绍^_^ core types 每一个JSON字段可以被映射...
  • an74520
  • an74520
  • 2013-10-31 16:09:15
  • 18433

Elasticsearch之_default_—— 为索引添加默认映射

前篇说过,ES可以自动为文档设定索引。但是问题也来了——如果默认设置的索引不是我们想要的,该怎么办呢? 要知道ES这种搜索引擎都是以Index为实际的分区,Index里面包含了不同的类型,不同的...
  • shuyun123456789
  • shuyun123456789
  • 2016-12-30 12:16:37
  • 2210
    我的微信
      我的微信号号,添加后更多福利
    个人资料
    持之以恒
    等级:
    访问量: 6万+
    积分: 4623
    排名: 7347
    文章存档
    最新评论