用 Go 编写的轻量全文搜索引擎,单个二进制文件即可运行,是 Elasticsearch 的低资源替代方案。
ankane/searchkick
为 Rails 模型添加智能全文搜索的 Ruby 库,底层基于 Elasticsearch 或 OpenSearch。
- Star
- 6,720
- Fork
- 761
- 未关闭 Issue
- 10
- 最近提交
- 11天前
这是什么?
Searchkick 是一个 Ruby gem,可将 Active Record 和 Mongoid 模型连接到 Elasticsearch 或 OpenSearch。开发者只需在模型中声明一行代码,即可为其添加全文搜索。它支持词干提取、特殊字符、多余空格、拼写错误和自定义同义词,例如搜索 "tomatoes" 能匹配 "tomato",搜索 "zuchini" 能匹配 "zucchini"。
查询采用可链式调用、类似 SQL 的接口,涵盖过滤、排序、分页、权重提升、聚合、高亮、自动补全、搜索建议和地理位置搜索。索引可以同步、异步、通过 Redis 队列或手动方式更新,并支持不停机的并行重建索引。该库兼容 Elasticsearch 8、9 以及 OpenSearch 2、3。
核心功能
- 01开箱即用的词干提取、拼写容错和自定义同义词
- 02类似 SQL 的链式查询,支持 where、order、limit 和 offset
- 03提供自动补全、"你是不是要找" 建议和结果高亮
- 04支持聚合,以及按字段、时效、距离或用户进行权重提升
- 05支持地理位置和地理形状搜索
- 06支持不停机重建索引,可选异步、队列或并行模式
适用场景
- 为 Rails 电商或商品目录应用添加商品搜索
- 为 Active Record 或 Mongoid 的大型数据模型实现自动补全
- 利用聚合为搜索结果提供分面筛选
- 为餐厅、门店等提供基于位置的搜索
快速上手
- 1
通过 Homebrew 安装并启动 OpenSearch
brew install opensearch && brew services start opensearch - 2
在 Gemfile 中添加 searchkick 以及 Elasticsearch 或 OpenSearch 客户端
gem "searchkick" - 3
在模型中添加 searchkick 并为其数据建立索引
Product.reindex
使用前须知
- 需要运行中的 Elasticsearch 或 OpenSearch 服务器。
- Elasticsearch 7 和 OpenSearch 1 需要使用旧版本 5.5.2。
标签
常见问题
- searchkick 是什么?
- 为 Rails 模型添加智能全文搜索的 Ruby 库,底层基于 Elasticsearch 或 OpenSearch。 Searchkick 是一个 Ruby gem,可将 Active Record 和 Mongoid 模型连接到 Elasticsearch 或 OpenSearch。开发者只需在模型中声明一行代码,即可为其添加全文搜索。它支持词干提取、特殊字符、多余空格、拼写错误和自定义同义词,例如搜索 "tomatoes" 能匹配 "tomato",搜索 "zuchini" 能匹配 "zucchini"。
- searchkick 可以免费使用吗?用的什么许可证?
- searchkick 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
- searchkick 还在维护吗?
- 活跃维护中。searchkick 最近一次提交是在 2026年10月27日。
- searchkick 适合用来做什么?
- 为 Rails 电商或商品目录应用添加商品搜索 为 Active Record 或 Mongoid 的大型数据模型实现自动补全 利用聚合为搜索结果提供分面筛选 为餐厅、门店等提供基于位置的搜索
- searchkick 怎么安装和运行?
- 通过 Homebrew 安装并启动 OpenSearch: brew install opensearch && brew services start opensearch 在 Gemfile 中添加 searchkick 以及 Elasticsearch 或 OpenSearch 客户端: gem "searchkick" 在模型中添加 searchkick 并为其数据建立索引: Product.reindex
- 在哪里获取 searchkick?
- 源代码和安装说明在 GitHub 上:https://github.com/ankane/searchkick
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
基于 OpenSearch 构建的自托管企业级与网站搜索服务器,内置网页、文件和数据源爬虫。
基于 Ruby on Rails 的开源电商框架,供开发者搭建并完全掌控自有线上商店。
用于在 Elasticsearch 和 OpenSearch 之间,以及与文件、S3 之间导入导出索引、映射、别名和模板的命令行工具。
可自托管的 GitLab 社区版,基于 Ruby on Rails 的 Git 仓库管理平台,集成代码评审、CI/CD 与议题跟踪。