Laravel scout 的策略,包含数百万条以上的记录和多个可互换的驱动程序(即 TNT 和 Algolia)

Strategy for Laravel scout with million+ records and multiple interchangeable drivers (i.e. TNT & Algolia)

我用过一点 Algolia,它是一项很棒的服务。我还为 scout 使用了 TNT-search 驱动程序,它也很不错,但与 Algolia 的功能、速度和易用性并没有真正的接触。

不幸的是,Algolia 在处理大量记录时变得非常昂贵 - 例如,我们的一个应用程序有超过 1000 万个可搜索行,这将是每月数千美元!

有没有人成功地将两者结合使用?即我想在需要更高级搜索功能(100k 条记录)的最近记录或类别中使用 Algolia,然后使用 TNT 搜索其余部分。

编辑:

Elasticsearch 就是答案。它设置起来有点困难,但具有很大的灵活性。我强烈建议 https://github.com/matchish/laravel-scout-elasticsearch 将其与 Laravel Scout 无缝连接。

好吧,A​​WS Elasticsearch 非常好又便宜.. 你可能会用到它,它非常易于使用和配置 laravel AWS Elasticsearch pricing 您可以从 r3.large.elasticsearch 开始,这将花费您每月大约 180 美元,如果您想要更多 r3.xlarge.elasticsearch 将也很神奇,它会满足你的需要。

使用 laravel 配置 AWS Elasticsearch 您可以阅读这篇文章 How-to integrate-your-Laravel-app-with-Elasticsearch

Elasticsearch 已在另一个答案中被建议作为一种具有成本效益的替代方案。但是,如果您正在寻找类似于 Algolia 但开源的东西,请查看 Typesense。它必须更易于设置和管理,并且还具有拼写错误更正等功能,开箱即用。

这个答案可能会迟到,但如果有人仍然遇到这个问题,Laravel scout 有一个 searchableUsing() 方法来确定要使用的搜索引擎,您可以覆盖它以配置不同的搜索不同型号的驱动程序。 This blogpost is a detailed step by step on how to do this