Elasticsearch es常用数据类型

标签:

本文出自jvm123.com-java技术分享站:http://jvm123.com/2020/08/elasticsearch-es.html

Elasticsearch es常用数据类型插图

常用的字段数据类型

text, keyword, date, long, double, boolean , ip

在建立索引时,可以指定字段的数据类型,如下:

 PUT /my-index-000001/_mapping
 {
   "properties": {
  "attach":{"type": "text"},
     "name": {
       "type": "text",
       "fields": {
           "raw": {
               "type": "keyword",
               "index": "not_analyzed"
           }
       }
     }
   }
 }

常见的string 字段可以同时被映射成 textkeyword,text会被分词并进行索引,而keyword类型不会。所以text类型常用来搜索,keyword常用来进行聚合。如上,聚合时,使用的字段应该写成 name.raw

如果使用text类型进行排序或聚合,也可以设置datafield为true,如下:

    "name": { 
      "type":     "text",
      "fielddata": true
    }

es分词器

分词测试可使用以下请求:

 POST http://petdy.cn:9200/_analyze
 Content-Type: application/json
 ​
 {
   "text": "北京市昌平区建材城西路金燕龙办公楼一层",
   "analyzer": "standard"
 }

默认使用standard分词器,对英文按照空格分词,对中文按照每个汉字进行分词。

IK分词器

在github下载中文专用的分词器,放置在plugin目录下即可。

IK分词器有两种分词模式:ik_max_word和ik_smart模式。

ES的索引名称不能为大写

发表评论