0

0

尽管存在重大缺陷,我们还是选择了美丽搜索而不是其他搜索引擎

WBOY

WBOY

发布时间:2024-07-29 09:34:44

|

689人浏览过

|

来源于dev.to

转载

是否值得在第三方搜索引擎上投入资源?这是我们的理由。

我们正在不断努力改进 hexmos 为即将发布的版本提供的产品反馈。

新功能和页面不断出现,用户界面不断变化,错误不断被注意到和修复,产品中正在发生许多变化。随着产品的发展,我们意识到我们需要改进整个产品的导航。

我们已经有了侧边栏和客户端搜索包cmdk来导航到不同的屏幕,但是当我们想要搜索不同的用户资料、团队、团队绩效等时就会出现困难,这迫使我们集成更好的第三方反馈搜索引擎。

使用专用搜索引擎的另一个原因是我们链上还有其他产品,例如FeedZap,未来需要复杂的文本搜索操作。

考虑到这一点,我们计划努力实现一个专用的、强大的搜索引擎,以适应我们的用例和资源可用性。

万彩商图
万彩商图

专为电商打造的AI商拍工具,快速生成多样化的高质量商品图和模特图,助力商家节省成本,解决素材生产难、产图速度慢、场地设备拍摄等问题。

下载

如何选择适合您需求的搜索引擎

有很多可用的搜索引擎,包括开源搜索引擎、无服务器、基于服务器等。
在深入找出正确的方案之前,最好先分析一下您的需求和基础设施,包括当前和未来的需求。

对于某些产品,可搜索的数据很少,但需要具有良好的搜索功能和最少的操作,但又买不起专用服务器。
对于其他产品,数据集更大,需要额外复杂的搜索操作,并且有足够的资源来加载专用搜索引擎。

基于此,我回顾了几个流行的搜索引擎。

需要良好的性能,数据集较小,并且买不起服务器

PostgreSQL 全文搜索

如果您正在使用 PostgreSQL 并且不想维护任何其他基于索引的数据库,那么 PostgreSQL 全文搜索 (PSFTS) 是一个不错的选择。但是,不建议在处理数百万笔交易和大量数据管理的大型用例中使用它。

布莱韦

如果您的项目位于 Go 生态系统内,那么 Bleve 是另一个值得考虑的选择。如果您不能依赖强大的基于服务器的搜索引擎服务,建议您使用。这是 Bleve 的基准报告。

坦蒂维

Tantivy 是用 Rust 编写的,对于基于 Rust 的项目特别有用。它已收到许多积极的反馈,是一个值得考虑的不错选择。


尽管存在重大缺陷,我们还是选择了美丽搜索而不是其他搜索引擎

需要强大的性能、大数据集并且能够负担得起服务器

需要强大的性能、大数据集并且能够负担得起服务器

如果您拥有服务器或云实例,并且需要一个功能强大、可扩展且具有完全控制权的搜索引擎,那么基于服务器的选项就是最佳选择。

我们的考虑和要求促使我们选择基于服务器的搜索引擎。我们有足够的资源来托管它,它比无服务器选项更好

    长期使用
  • 可扩展性
  • 对复杂搜索操作的额外支持,例如:
    • 分面搜索:这意味着在线购物时,您可能会搜索“笔记本电脑”,然后使用分面搜索通过选择“价格低于 1000 美元”、“品牌:Apple”和“RAM:16GB”等过滤器来缩小结果范围。
    • 多重搜索:考虑可以让用户同时搜索航班、酒店和汽车租赁并显示综合结果的旅游网站。
    • 键入即搜索:它根据每次击键提供实时搜索结果。
  • 多种产品的通用搜索系统。
经过广泛的过滤,我们将其范围缩小到此类别中的四个选项,例如:

    美丽搜索
  1. 类型感
  2. PISA 搜索
  3. 蝎尾狮
这是它们之间的比较:

标准meili搜索类型感比萨搜索蝎尾狮输入即搜索是的是的没有没有分面搜索是的是的没有没有多种架构/产品支持是的是的-是的内存使用情况 对于 224 MB 磁盘:~305 MB RAM 主要索引位置是磁盘主索引位置是 RAM,100MB 磁盘需要 300MB RAM--CPU 使用率 对于 12 核机器,它最多使用 6 核 与高 CPU 使用率相关的 github 问题 对于 4vCPU 处理 104 个并发搜索/秒--拼写错误、同义词处理是的是的--

我们过滤掉了 PISA 搜索和 Manticore,因为它们都不提供我们的应用程序所需的“即输入即搜索”和分面搜索功能。

继续阅读全文:https://journal.hexmos.com/we-chose-meilisearch-over-10-other-search-engines-despite-a-major-drawback/

相关专题

更多
C++系统编程内存管理_C++系统编程怎么与Rust竞争内存安全
C++系统编程内存管理_C++系统编程怎么与Rust竞争内存安全

C++系统编程中的内存管理是指 对程序运行时内存的申请、使用和释放进行精细控制的机制,涵盖了栈、堆、静态区等不同区域,开发者需要通过new/delete、智能指针或内存池等方式管理动态内存,以避免内存泄漏、野指针等问题,确保程序高效稳定运行。它核心在于开发者对低层内存有完全控制权,带来灵活性,但也伴随高责任,是C++性能优化的关键。

10

2025.12.22

postgresql常用命令
postgresql常用命令

postgresql常用命令psql、createdb、dropdb、createuser、dropuser、l、c、dt、d table_name、du、i file_name、e和q等。本专题为大家提供postgresql相关的文章、下载、课程内容,供大家免费下载体验。

158

2023.10.10

常用的数据库软件
常用的数据库软件

常用的数据库软件有MySQL、Oracle、SQL Server、PostgreSQL、MongoDB、Redis、Cassandra、Hadoop、Spark和Amazon DynamoDB。更多关于数据库软件的内容详情请看本专题下面的文章。php中文网欢迎大家前来学习。

957

2023.11.02

postgresql常用命令有哪些
postgresql常用命令有哪些

postgresql常用命令psql、createdb、dropdb、createuser、dropuser、l、c、dt、d table_name、du、i file_name、e和q等。更详细的postgresql常用命令,大家可以访问下面的文章。

194

2023.11.16

postgresql常用命令介绍
postgresql常用命令介绍

postgresql常用命令有l、d、d5、di、ds、dv、df、dn、db、dg、dp、c、pset、show search_path、ALTER TABLE、INSERT INTO、UPDATE、DELETE FROM、SELECT等。想了解更多postgresql的相关内容,可以阅读本专题下面的文章。

264

2023.11.20

数据库三范式
数据库三范式

数据库三范式是一种设计规范,用于规范化关系型数据库中的数据结构,它通过消除冗余数据、提高数据库性能和数据一致性,提供了一种有效的数据库设计方法。本专题提供数据库三范式相关的文章、下载和课程。

339

2023.06.29

如何删除数据库
如何删除数据库

删除数据库是指在MySQL中完全移除一个数据库及其所包含的所有数据和结构,作用包括:1、释放存储空间;2、确保数据的安全性;3、提高数据库的整体性能,加速查询和操作的执行速度。尽管删除数据库具有一些好处,但在执行任何删除操作之前,务必谨慎操作,并备份重要的数据。删除数据库将永久性地删除所有相关数据和结构,无法回滚。

2069

2023.08.14

vb怎么连接数据库
vb怎么连接数据库

在VB中,连接数据库通常使用ADO(ActiveX 数据对象)或 DAO(Data Access Objects)这两个技术来实现:1、引入ADO库;2、创建ADO连接对象;3、配置连接字符串;4、打开连接;5、执行SQL语句;6、处理查询结果;7、关闭连接即可。

346

2023.08.31

python设置中文版教程合集
python设置中文版教程合集

本专题整合了python改成中文版相关教程,阅读专题下面的文章了解更多详细内容。

1

2026.01.05

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Git 教程
Git 教程

共21课时 | 2.4万人学习

Git版本控制工具
Git版本控制工具

共8课时 | 1.5万人学习

Git中文开发手册
Git中文开发手册

共0课时 | 0人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号