最近项目里边用到 es,Gemfile 里边相关 gem 如下
gem 'elasticsearch'
gem 'elasticsearch-model'
gem 'elasticsearch-rails'
gem 'elasticsearch-persistence'
gem 'searchkick'
自己大概捋了一下
es-model: 主要和 orm 整合的 (ActiveRecord 或者 MongoId)
es-rails: 集成了 rails 的各种功能
es-persistence: elasticsearch-persistence 是为 ruby 对象提供了持久层。什么?!持久层!rails 不是有自己的持久层 ActiveRecord 吗?用了 es-persistence 之后会和 ActiveRecord 处于什么关系?难道是为了解决 es 和 rails 程序之间的持久关系吗?
searchkick:是不是在 model 层引入 searchkick 之后并且把 model 的数据 reindex 到 es 中就可以用如下语法检索 es 了
Model.search "wingtips", where: {color: "brandy"}
但是下边这段 es 检索代码又是用了哪个插件?(这是因为没用 searchkick 的原因吗?)
Model.__elasticsearch__.search(query)
它们的世界太乱,我已懵逼 我感觉以这种状态去看文档很吃力,所以哪位大牛出来救急一下,大概理一下它们之间的关系和作用