PUT /website/article/1

{

"post_date": "2017-01-01",

"title": "my first article",

"content": "this is my first article in this website",

"author_id": 11400

}

执行上面的语句,es会创建type对应的mapping,mapping中包含了每个field对应的数据类型。

GET /website/_mapping/article

响应:

{

"website": {

"mappings": {

"article": {

"properties": {

"author_id": {

"type": "long"

},

"content": {

"type": "text",

"fields": {

"keyword": {

"type": "keyword",

"ignore_above": 256

}

}

},

"post_date": {

"type": "date"

},

"title": {

"type": "text",

"fields": {

"keyword": {

"type": "keyword",

"ignore_above": 256

}

}

}

}

}

}

}

}

1、exact value

2017-01-01,exact value,搜索的时候,必须输入2017-01-01,才能搜索出来

如果你输入一个01,是搜索不出来的

2、full text  全文检索

(1)缩写 vs. 全程:cn vs. china

(2)格式转化:like liked likes

(3)大小写:Tom vs tom

(4)同义词:like vs love

china,搜索cn,也可以将china搜索出来

likes,搜索like,也可以将likes搜索出来

Tom,搜索tom,也可以将Tom搜索出来

like,搜索love,同义词,也可以将like搜索出来

就不是说单纯的只是匹配完整的一个值,而是可以对值进行拆分词语后(分词)进行匹配,也可以通过缩写、时态、大小写、同义词等进行匹配。

3、数据类型

1、核心的数据类型

string

byte,short,integer,long

float,double

boolean

date

2、dynamic mapping

true or false --> boolean

123 --> long

123.45 --> double

2017-01-01 --> date

"hello world" --> string/text

3、查看mapping

GET /index/_mapping/type

4、如何建立索引

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"   //not_analyzed

}

}

}

}

}

不能update field mapping

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

}

//建立一个新的field并指定mapping

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"

}

//下面报错是因为new_field不允许分词

{

"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的mapping的更多相关文章

  1. elasticsearch 之mapping

    搭好elk 后,有时候会发现kibana 统计数据时,数据类型不对,这个时候就和elasticsearch的mapping有关,虽然我们可以用logstash修改传入es里的数据类型,比如 float ...

  2. curl方式创建elasticsearch的mapping

    curl方式创建elasticsearch的mapping curl -XPUT 'http://192.168.1.105:9200/bank/item2/_mapping' -d '{ " ...

  3. elasticsearch的mapping映射

    Mapping简述 Elasticsearch是一个schema-less的系统,但并不代表no shema,而是会尽量根据JSON源数据的基础类型猜测你想要的字段类型映射.Elasticsearch ...

  4. ELK学习总结(4-1)elasticsearch更改mapping(不停服务重建索引)

    elasticsearch更改mapping(不停服务重建索引)原文 http://donlianli.iteye.com/blog/1924721Elasticsearch的mapping一旦创建, ...

  5. elasticsearch更改mapping(不停服务重建索引)

    转载地址:http://donlianli.iteye.com/blog/1924721?utm_source=tuicool&utm_medium=referral Elasticsearc ...

  6. elasticsearch更改mapping,不停服务重建索引(转)

    原文:http://donlianli.iteye.com/blog/1924721?utm_source=tuicool&utm_medium=referral Elasticsearch的 ...

  7. 通过Java的Domain类构建ElasticSearch的mapping

    通过给定一个Java的class类自行创建ElasticSearch的mapping Order的domain类 public class Order { public String system_i ...

  8. elasticsearch 修改 mapping

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

  9. ElasticSearch(5)-Mapping

    一.Mapping概述 映射 为了能够把日期字段处理成日期,把数字字段处理成数字,把字符串字段处理成全文本(Full-text)或精确的字符串值,Elasticsearch需要知道每个字段里面都包含了 ...

  10. Elasticsearch索引mapping的写入、查看与修改(转)

    mapping的写入与查看 首先创建一个索引: curl -XPOST "http://127.0.0.1:9200/productindex" {"acknowledg ...

随机推荐

  1. D2007从win7升级到win10下的莫名其妙问题。

    在win7下听说win10被推荐,于是升级到win10.结果使用d2007不能打开,出现莫名其妙的错误.把bin\bds.exe改名bds1.exe后居然可以启动了.一番折腾后,这把bds1.exe改 ...

  2. hdu 1384 查分约束

    #include<stdio.h> /* 要善于挖掘隐含条件 dis[v]-dis[u]>=bian[i].w;一个条件(u,v,bian[i].w); dis[i+1]>=d ...

  3. 0320SQL中的where条件,在数据库中提取与应用浅析

    转自 何登成的技术博客 追求技术的道路上,10年如一日     首页 关于我 RSS 订阅 © 2012-2017 何登成的技术博客   SQL中的where条件,在数据库中提取与应用浅析 3月 3r ...

  4. 【软件project】之第五、六章总结

    软件project的前几章各自是软件计划.需求分析.软件设计.整体的都规划好了以后,就该着手去实践了. 所谓的理论体系足够强大了以后,实践就显得尤为轻松.我们设计软件,实践当然就是用我已经计划好的语言 ...

  5. 使用OpenSSL做RSA签名验证 支付宝移动快捷支付 的server异步通知

    因为业务须要.我们须要使用支付宝移动快捷支付做收款.支付宝给了我们<移动快捷支付应用集成接入包支付接口>见支付宝包<WS_SECURE_PAY_SDK>. 支付宝给的serve ...

  6. 【Android归纳】Fragment生命周期-基于实验的最新总结

    如今非常多应用的开发都是基于FragmentActivity中嵌套Fragment进行开发的,所以,假设我们可以清晰地知道他们的生命周期,那么会使我们的开发变的easy. 对于Activity的生命周 ...

  7. Linux查找并杀死僵尸进程

    1.查看系统是否有僵尸进程 使用Top命令查找,当zombie前的数量不为0时,即系统内存在相应数量的僵尸进程. 2.定位僵尸进程 使用命令ps -A -ostat,ppid,pid,cmd |gre ...

  8. Gym-101158J Cover the Polygon with Your Disk 计算几何 求动圆与多边形最大面积交

    题面 题意:给出小于10个点形成的凸多边形 和一个半径为r 可以移动的圆 求圆心在何处的面积交最大,面积为多少 题解:三分套三分求出圆心位置,再用圆与多边形面积求交 #include<bits/ ...

  9. NSKeyedUnarchiver归档

    把自定义的类对象编码到NSData中 NSData *data = [NSKeyedArchiver archivedDataWithRootObject:bc];//归档,bc是一个自定义的类对象, ...

  10. MySql数据库中乱码问题解决方案

    show variables like 'character%';    //查看当前各系统位置的字符编码格式 问题一: Incorrect string value: '\xB4\xF3\xB4\x ...