Rails 搜索页面,如果只检索标题,需要使用 ElasticSearch 的吗?

Sylor-huang · 2020年09月23日 · 最后由 Sylor-huang 回复于 2020年09月28日 · 1950 次阅读

我现在有个阿里云服务器,2 核 4g,固定带宽 3M。

目前在上面部署的 Rails 项目使用了 mysql 和 Elasticsearch,检索了全文。

前段时间,我看到了 RubyChina 是替换掉了 Elasticsearch, 使用 postgresql 的全文搜索。(翻不到对应的文章链接了...)

我现在不想检索全文了,只想 搜索匹配的标题,(有个栏目会搜索内容,但是内容长度限定在 500 字内)。

目前网站还是在测试,流量和内容不是很大。

我想请教下大家,如果在流量或者内容数据不大的情况下(比如 每天的 IP 500-1000, 表数据 10000-50000 行等)

  1. 我使用 ransack 这个 gem 可以的吗(性能,稳定性等,目前少量的内容,看着搜索还是挺快的)?

  2. 如果为了以后减少改动,使用 Rubychina 这样的 postgresql 全文检索,从 mysql 切换到 postgresql,学习成本高的吗?

感谢大家~

1000 并发叫不大?你说的是秒吗

我修改了下,并发说的不对。。应该是独立的访问 ip 数吧。。

ransack 的 like 如果不限制前缀匹配就是全表扫描 你觉得还可以说明数据量真的不大 如果 pg 的话 like 也可以加 gin 索引 能坚持到单表千万级别 迁移没什么困难只是你如果想用 pg 专有特性还是有一些成本

你不需要 ElasticSearch

@hooopo 感谢你的回复,ransack 使用了 title_cont 这样的语法,这个算是 前缀匹配的吗?那我现在本地切换成 pg 试下。非常感谢~

@huacnlee 我就是看到 rubychina 的换成 pq 了,所以一直就想是不是也该换了😀

Sylor-huang 回复

换了就省 1g 多内存 这便宜能不占?

Sylor-huang 回复

你要加对索引才有效果哇

@hooopo 好的😀 ,谢谢你了哈~

hooopo 回复

1000 每秒的话,2 核 4g 这配置,es 感觉扛不住。

yfractal 回复

够呛

不清楚 ruby china 的搜索栏的搜索范围是哪些,比如我要检索之前在这帖子的回复里面出现的 Meilisearch 的话会出现检索不到东西的情况

Sylor-huang 回复

用 title_start 应该走索引

好的,title 字段已经加了索引的 @lidashuang

需要 登录 后方可回复, 如果你还没有账号请 注册新账号