解惑

解己之惑,解人之惑

日:2018年6月20日

ElasticSearch只允许每个index里面一个type了

这个是今天内部讨论获悉的信息,查了下属实,具体内容可以看官方文档:

Removal of mapping types

5.x以前的multiple types还可以正常工作,但是6.x里面新创建的index只允许一个type了,从7.0开始将强制只有一个type。

这个对于很多打算把ElasticSearch做数据库使用的团队来讲不会是个特别好的消息,因为数据库的很多表其实只有很少的数据,大量数据可能集中在几个大表里面。不过既然趋势如此,如果打算继续用ElasticSearch就必须接受这个变化并遵循。

想想从ElasticSearch 0.9开始用到现在,也就短短5年(已经5年了😯)吧,版本也是一路突飞猛进,到现在6.3,估计7.0也会在年内发布,感受到ElasticSearch的高度活跃,推出的功能也是越来越多,我们原来基于ElasticSearch做的那些功能现在看起来太落伍了,刚好产品也进入维护模式了,估计要重新做了,刚好我原来对这个产品的很多设计非常不满(不是我设计的😛)

不过我的一些想法倒还没有落伍,因为涉及到专利,也不好说太多。

不能评论

有朋友反映不能发表评论,自己试了下,发现评论的下面加了个很不起眼的Anti Spam的问题:

Current ye@r *

默认的值是5.2,需要修改为当前的年份,估计那位朋友没有注意到,如果没有修改为正确的年份直接报错说是spam。

修正这个问题后的问题是评论不会马上出现,这个是anti spam的另外一个设置,如果评论包含两个以上的link,就会进入人工审核的队列,审核过了才会出现。

更新:查看了下设置,默认是评论者有至少一个评论通过了人工审核,也就是每个用户的第一个评论肯定要人工审核,这个是wordpress自己的设置,和anti spam的插件没有关系。现在已经修改设置了,不需要默认人工审核了,欢迎积极评论😎

Puppet运行脚本失败

puppet运行一个shell的脚本,如果是puppet的agent定期执行的,就是不成功,但是puppet agent -t运行就可以,开始以为是用户身份的问题,加了调试命令打出来的用户身份没有问题,脚本里面原来也有reboot也是不好使,但是加了sudo在前面就解决,就在那个命令前面也加了sudo,还是不好使,改成su再执行,依然不行,百思不得其解。

后来灵光一现,打印了命令行执行时的env,然后在脚本里面也把env输出了出来,通过puppet的service跑的时候果然env里面少了很多东西,仔细想想也了然,因为puppet的service的启动顺序是早于系统的那个profile的初始化的,所以很多环境变量没有被设置。

把在控制台直接跑的时候的env的结果保存下来并在脚本里面import进去再运行,果然没有问题。

这个很妖异的问题就这么解决了,命令行直接执行脚本以及puppet agent -t直接运行都没有问题,但是puppet的service自动触发的就是不行,源于service的启动早于系统的完全初始化。

© 2025 解惑

本主题由Anders Noren提供向上 ↑