Elasticsearch 1.4 升级 2.3.4

es1.x到es2.x有很大的差别,具体看https://www.elastic.co/guide/en/elasticsearch/reference/2.3/breaking-changes-2.0.html。下面罗列一些主要的变化点。

1._id  path废弃:

"_id":{
            "path”:"productId"
        }

以前这种写法,在索引的时候不需要指定_id的值,es自动会把productId的值赋给_id,但是在2.3.4版本中废弃了,所以索引的时候需要显示的指定_id,不指定的话会默认生成一个值。

2.“path”:“just name”废弃:

 "productSkn": {
                "fields": {
                    "productSkn": {
                        "type": "string",
                        "index":    "not_analyzed",
                        "doc_values": true,
                        "fielddata": {
                            "format": "doc_values"
                        }
                    },
                    "productSkn_ansj": {
                        "type": "string",
                        "store": false,
                        "index_analyzer": "mmseg_complex",
                        "search_analyzer": "mmseg_complex"
                    }
                },
                "type": "multi_field",
                "path": "just_name"
            }

这种写法配置了 "path": “just_name”后如果想对productSkn_ansj进行查询,可以

{
    "match" : {
        “productSkn_ansj" : “xxx"
    }
}

但是在2.3.4版本中废除了 "path": “just_name”,查询productSkn_ansj的时候必须得full name,得这样写:

{
    "match" : {
        “productSkn.productSkn_ansj" : “xxx"
    }
}

3.index_analyzer废弃:

使用analyzer代替,如果index analyzer跟search analyzer一样的话不需要写search_analyzer,直接写一个analyzer就行了。

4.doc_value fielddata变更:

not analyzer字段doc_value有效,默认为true

analyzer字段fielddata有效,默认为true

doc_value、fielddata都是为了聚合计算、排序、在脚本中访问字段值而引入的数据结构,是根据反向索引再次反向出来的一个正向索引,也就是文档到关键词的映射。

doc_value是落磁盘的,是预先构建的,也就是构建文档索引的时候。

fielddata是放内存的,是在一个字段在做聚合、排序、在脚本中访问的时候构建的(命中就不构建了)。

5.Muticast Discovery变更:

Muticast Discovery默认不可用,需要安装相应的插件

6.Filtered Query

这个已经 deprecated,在 2.x 中你还可以用。但是建议做如下修改

{
  "query": {
    "filtered": {
      "query": {
       …….
      },
      "filter": {
        …….
      }
    }
  }
}

修改为 

{
  "query": {
    "bool": {
      "must": {
       …….
      },
      "filter": {
        …….
      }
    }
  }
}

把 query 和 filter 移到 bool 查询的 must 和 filter 参数之中。

7.字段名不要有dot(点)

8.optimize使用force merge接口代替

9.启动es不能使用root,需要创建非root用户启动es

10.multi field

     1.4版本

"brandNameCn": {
    "fields": {
        "brandNameCn": {
            "type": "string",
            "store": false,
            "analyzer": "ik_complex",
            "search_analyzer": "ik_complex",
            "copy_to":  ["searchField","searchField_ansj"]
        },
        "brandNameCn_pinyin": {
             "type": "string",
            "store": false,
            "analyzer": "pinyin_analyzer",
            "search_analyzer": "standard"
        }
    },
    "type": "multi_field"
}

   2.3.4版本

{
  "brandNameCn": {
    "copy_to": [
      "searchField", "searchField_ansj"],
    "analyzer": "ik_complex",
    "type": "string",
    "fields": {
      "brandNameCn_pinyin": {
        "search_analyzer": "standard",
        "analyzer": "pinyin_analyzer",
        "type": "string"
      }
    }
  }
}

11.refresh_interval

1.4版本         refresh_interval=1

2.3.4版本      refresh_interval=1s

 

转载于:https://my.oschina.net/u/913896/blog/738227

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值