laravel - Laravel scout 的策略,拥有数百万以上的记录和多个可互换的驱动程序(即 TNT 和 Algolia)
问题描述
我用过一点 Algolia,这是一项很棒的服务。我还使用了用于侦察的 TNT 搜索驱动程序,它也非常好,但对使用 Algolia 获得的功能、速度和易用性并没有真正的了解。
不幸的是,Algolia 在处理大量记录时变得非常昂贵 - 例如,我们的一个应用程序有超过 1000 万个可搜索行,这将是每月数千美元!
有没有人成功地同时使用这两种方法?即,我想将 Algolia 用于需要更高级搜索功能(10 万条记录)的最近记录或类别,然后使用 TNT 搜索其余部分。
编辑:
Elasticsearch 就是答案。设置起来有点困难,但具有很大的灵活性。我强烈推荐https://github.com/matchish/laravel-scout-elasticsearch将它与 Laravel Scout 无缝连接。
解决方案
Elasticsearch 已经在另一个答案中被建议作为一种具有成本效益的替代方案。但是,如果您正在寻找类似于 Algolia 但开源的东西,请查看Typesense。它必须更易于设置和管理,并且诸如错字更正等功能开箱即用。
推荐阅读
- python - 不断收到错误“输入包含 NaN、无穷大或对于 dtype('float32') 来说太大的值。”
- bevy - 如何在bevy中获取子实体的绝对位置?
- elasticsearch - 嵌套字段上的 Elasticsearch 复合聚合查询
- azure-active-directory - Azure AD B2C 会话超时无效
- pandas - 熊猫与 numpy 不兼容
- visual-studio - Ctrl+Shift+右箭头在 Visual Studio 2019 中不起作用
- spring - 使用 Spring 在非 Web 应用程序中使用 ElasticSearch 客户端
- foreach - 使用 ForEach 时,在 SwiftUI 中选择时是否可以更改 tabItem 的图像?
- apache-flink - Flink 中的检查点随时间增加
- javascript - Javascript- 使 JSON 排序函数可扩展为 Date 对象