ElasticSearch 索引、更新和删除数据

https://www.elastic.co/guide/en/elasticsearch/client/java-api/6.1/client.html

Relational DB -> Databases -> Tables -> Rows -> Columns

Elasticsearch -> Indices -> Types -> Documents -> Fields

  • 创建索引 , 5个分片,1个副本
PUT test_index
{
  "settings": {
    "number_of_shards": 5,
    "number_of_replicas": 1
  }
}
  • 创建(新增)索引Mapping,但无法修改已有类型
PUT jast_log_index/_mapping/jast_log_type
{
  "jast_log_type":{
    "properties":{
      "title":{"type":"text","index":true},
      "article_type":{"type":"integer"},
      "date":{"type":"date","format":"MMM DD YYYY"}
    }
  }
}

mapping相关属性配置 

一级属性 二级属性 三级属性 说明
dynamic     新增字段自动模式;true:表示自动识别新字段并创建索引,false:不自动索引新字段,strict:遇到未知字段,抛异常,不能存入
_timestamp     是否使用时间戳,ES会自动加时间戳,使用的话请百度
properties     属性列表(类似数据库多个字段定义)
  {字段名}   某个字段的定义
    type 数据类型,参见数据类型说明
    index 映射选型,参见映射选型说明
    doc_values 布尔值, 对not_analyzed字段,默认都是开启,分词字段不能使用,对排序和聚合能提升较大性能,节约内存
    format 如果数据类型为日期格式,传入值得时候是字符串,ES需要一个格式进行识别,如:yyyy-MM-dd HH:mm: ss
    analyzer 分词器,如ik,ansj(中文分词)
    boost 浮点型,字段级别的分数加权(权重)
    ignore_above 超过多少字符,就不处理,分词性能损耗较大,对字符串较长的可不分词
    null_value 设置一些缺失字段的初始化值,只有string可以使用,分词字段的null值也会被分词
    store 是否单独设置此字段的是否存储而从_source字段中分离,默认是false,只能搜索,不能获取值
    search_analyzer 设置搜索时的分词器,默认跟ananlyzer是一致的,比如index时用standard+ngram,搜索时用standard用来完成自动提示功能
    其它 similarity,term_vector,norms,include_in_all,index_options,fielddata,ignore_malformed,precision_step
发布了131 篇原创文章 · 获赞 33 · 访问量 66万+

猜你喜欢

转载自blog.csdn.net/zhangshenghang/article/details/100123237