【发布时间】:2015-04-03 20:06:59
【问题描述】:
我正在使用 Laravel 为移动应用构建 REST api。现在我需要一个搜索引擎。
首先,我从未使用过任何搜索引擎。所以我正在寻找一个易于使用但仍然擅长全文搜索和过滤“位置”的工具
我要执行搜索的表有 1 列 (varchar45) 需要通过全文搜索进行搜索,然后有 5 列 (int) 用于使用“where”语句进行过滤。- 使用 mysql方法。我还在那个表上执行了一个内部连接,以便在生成结果时打印出一些其他的东西。
所以我查看了 sphinx 和 Elasticsearch,并决定使用 ES。
我看过 Laracon 的 ES 介绍:https://www.youtube.com/watch?v=waTWeJeFp4A
我还看了这个包:https://github.com/freekmurze/searchindex
这给我留下了几个问题:
1) 我是否要删除我的 mysql 数据库并将所有我的数据存储在 ES 中?
2) 如果 1-yes,我还能使用我的 mysql DB 并只使用 ES 来存储索引吗? - 因为我只需要在一个表上执行搜索(总共搜索 5 行)。
3 如果 2 是,我是否仍将当前索引保留在我的 mysql 表中?例如,标题列上的全文索引,另一列上的 FK 和其他 3 列上的索引。
4由于这是我第一次使用搜索引擎,是否还有其他教程/书籍/sn-p 介绍如何将 ES 与 Laravel 一起使用?
提前致谢
【问题讨论】:
-
就我个人而言,我仍然将所有信息存储在 MySQL 上,我只是将大表存储在 elasticsearch 中,并仅在大数据中使用它来搜索,其中完整索引很慢,或者我需要得到有序的结果。还要记住,将数据存储在某种数据库中会很好。将所有信息存储在 ES 上并不好,因为据我所知,没有快速的方法可以导出 ES 数据并将其导入另一台服务器。如果你选择仍然使用 MySQL 和 ES,只保留你需要的索引(例如,如果你不是通过全文搜索,删除它)。
标签: php mysql search laravel elasticsearch