【ES系列八】——问题整理与总结

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u013030601/article/details/79771410

【背景】

    前端时间在团队中进行了ES的分享活动,只是将大概的内容进行了宏观的分享,以及自己在做的过程中的一些思路,但是在最后的答疑环节,伙伴们提出了一些问题,今天就针对于这些问题进行了一个简单的总结,希望能够带给读者朋友一些帮助。

    另外,以后还会针对于ES具体在项目中的运用,继续更新我的博文,欢迎拍砖~

【问题】

一、如何知道es相关版本需要在jdk的什么版本下运行?

    如下图:找到jar文件中的说明,里面有对应的jdk版本的要求


二、ES是否支持在已有的索引类型中建立新的字段,并且可以随意指定类型(该索引类型中有数据)

    ES2.多版本是不支持的,当初的做法是删除重新建立。

    ES5.5版本实验是支持的,可以新建指定类型的字段

三、ES是否支持修改已有数据的索引中对应的字段类型

    不支持,但是可以新建立一个字段,然后将数据通过代码进行同步

四、将ES由2.多版本向5.多版本迁移相关的方案?

    ES 1.5.0 升级到 ES2.3.3 的过程

    https://www.jianshu.com/p/812f8cf47934

    从ES 2.1ES5.5

    https://www.jianshu.com/p/dc6b4e84a673

    以上解决方案仅供参考~

五、华为提供的ES没有ik插件导致不能使用的问题?

    我将ES的ik插件删除之后做了相关的实验,的确调用我写的默认创建索引以及mapping规则的接口会报错(因为mapping规则中有指定某个字段按照ik分词进行创建),但是调用直接插入数据的接口让其创建默认的数据以及相关类型是可以通的,也就是如果没有ik的情况下,ES也是可以使用的,但是涉及到ik分词的时候肯定会出现报错的情况

六、es默认创建的字段进行查询的问题

    es默认创建的字段在进行精确查询的时候,需要加上.keyword不然就查询不到

    es通过mapping规则创建的字段在进行精确查询的时候,直接按照字段和值的匹配对应就可以了


七、ES更新操作有延迟

    项目中ES执行了更新操作,紧接着执行查询操作,返回的是更新前的状态,而不是更新后的状态

八、ES5.5.1中的版本必须用maven项目进行构建,不然内部的依赖不可用。

【总结】

    将这些问题进行了整理工作,以后如果工作中有遇到了,就可以很快的解决了,或者类似的问题,也会有了相关的解决思路了,这也就是所谓的工作经验吧~

    不断的在这条路上前行~

猜你喜欢

转载自blog.csdn.net/u013030601/article/details/79771410
今日推荐