Thinking Sphinx 是一个用于将 ActiveRecord 连接到 Sphinx 全文搜索工具的库,并与 Rails 紧密集成(但也可与其他 Ruby Web 框架配合使用)。当前版本是 v5.6.0。
请参阅变更日志和发行说明,了解升级时需要进行的任何更改。发行说明尤其擅长涵盖重大更改和新功能的更多细节。
该文档还提供了有关从 v4 升级到 v5、从 v3 升级到 v4 以及从 v1/v2 升级到 v3 所涉及的内容的更多详细信息。
它是一个 gem,所以像安装任何其他 gem 一样安装它。如果您使用MRI ,您还需要指定 mysql2 gem,或者如果您使用 JRuby,则需要指定 jdbc-mysql:
gem 'mysql2', '~> 0.4', :platform => :ruby
gem 'jdbc-mysql', '~> 5.1.35', :platform => :jruby
gem 'thinking-sphinx', '~> 5.5'
连接到 Sphinx 需要提到的 MySQL gem,因此即使您的数据库使用 PostgreSQL,也请包含它。
您还需要安装 Sphinx – 这在扩展文档中有所介绍。
首先阅读快速入门指南,除此之外,该文档应该可以很好地为您服务。
Thinking Sphinx 的当前版本与其依赖项的以下版本兼容:
图书馆 | 最低限度 | 测试针对 |
---|---|---|
红宝石 | v2.4 | v2.4、v2.5、v2.6、v2.7、v3.0、v3.1、v3.2 |
狮身人面像 | v2.2.11 | v2.2.11、v3.4.1 |
蝎狮 | v2.8 | v4.0、v6.0 |
活动记录 | v4.2 | v4.2..v7.0 |
它可能适用于旧版本的 Ruby,但强烈建议更新到受支持的版本。
它也应该可以与 JRuby 一起使用,但是 CI 中的测试环境并不可靠,因此目前还没有对其进行积极的测试。
如果您使用 Sphinx,建议使用 v2.2.11,尽管它已经很旧了,因为它与 PostgreSQL 数据库配合得很好(但如果您使用 MySQL – 或实时索引 – 那么 v3.3.1 也应该没问题)。
如果您选择 Manticore,则 v2.8 或更高版本有效,但建议使用 v4 或更高版本,因为这是积极测试的对象。 v4.2 和 5.0 版本在构面搜索方面存在错误,但已在 Manticore v6.0 中修复。
目前 Thinking Sphinx 是为了支持 Rails/ActiveRecord 4.2 或更高版本而构建的。如果您使用 Sinatra 和 ActiveRecord 而不是 Rails,那没问题 – 只需确保在 Gemfile 中列出thinking-sphinx
时添加:require => 'thinking_sphinx/sinatra'
选项即可。
如果您需要 ActiveRecord 3.2-4.1 支持,请参阅 Thinking Sphinx 的 4.x 版本。或者,对于 ActiveRecord 3.1 支持,请参阅 3.0.x 版本。任何比这更旧的版本,那么您就只能使用 Thinking Sphinx v2.x(针对 Rails/ActiveRecord 3.0)或 v1.x(Rails 2.3)。请注意,这些旧版本不再受到积极支持。
您将需要标准 Ruby(v2.4 或更高版本)或 JRuby(9.1 或更高版本)。
支持 MySQL 5.x 和 Postgres 8.4 或更高版本。
请注意,该项目有贡献者行为准则。参与该项目即表示您同意遵守其条款。
要做出贡献,请克隆此存储库并仔细查看规范 - 您会注意到实际使用 Sphinx 并遍历整个堆栈的验收测试与使用自由测试替身以确保它们的单元测试(其他所有内容)之间的区别只是测试相关类的行为。我发现这可以带来更好的代码设计。
所有开发都在develop
分支上完成;请将任何拉取请求基于该分支。请编写测试,然后编写代码以使它们通过,并通过拉取请求发送。
为了运行测试,您需要创建一个名为thinking_sphinx
的数据库:
# Either fire up a MySQL console:
mysql -u root
# OR a PostgreSQL console:
psql
# In that console, create the database:
CREATE DATABASE thinking_sphinx;
然后,您可以使用rake spec:unit
运行单元测试,使用rake spec:acceptance
验收测试,或者仅使用rake
运行所有测试。要使用 PostgreSQL 运行这些,您需要相应地设置DATABASE
环境变量:
DATABASE=postgresql rake
版权所有 © 2007-2024,Thinking Sphinx 由 Pat Allan 开发和维护,并根据开放的MIT许可证发布。非常感谢所有贡献补丁的人。