Thinking Sphinx é uma biblioteca para conectar o ActiveRecord à ferramenta de pesquisa de texto completo Sphinx e se integra intimamente ao Rails (mas também funciona com outros frameworks web Ruby). A versão atual é v5.6.0.
Consulte o changelog e as notas de versão para quaisquer alterações que você precise fazer durante a atualização. As notas de lançamento, em particular, são muito boas para cobrir alterações importantes e mais detalhes sobre novos recursos.
A documentação também contém mais detalhes sobre o que está envolvido na atualização da v4 para a v5, da v3 para a v4 e da v1/v2 para a v3.
É uma joia, então instale-a como faria com qualquer outra joia. Você também precisará especificar a gem mysql2 se estiver usando MRI ou jdbc-mysql se estiver usando JRuby:
gem 'mysql2', '~> 0.4', :platform => :ruby
gem 'jdbc-mysql', '~> 5.1.35', :platform => :jruby
gem 'thinking-sphinx', '~> 5.5'
As gemas do MySQL mencionadas são necessárias para conectar-se ao Sphinx, portanto, inclua-as mesmo quando estiver usando o PostgreSQL para seu banco de dados.
Você também precisará instalar o Sphinx – isso é abordado na documentação estendida.
Comece lendo o guia de início rápido e, além disso, a documentação deverá ser muito útil para você.
A versão atual do Thinking Sphinx funciona com as seguintes versões de suas dependências:
Biblioteca | Mínimo | Testado contra |
---|---|---|
Rubi | v2.4 | v2.4, v2.5, v2.6, v2.7, v3.0, v3.1, v3.2 |
Esfinge | v2.2.11 | v2.2.11, v3.4.1 |
Manticora | v2.8 | v4.0, v6.0 |
Registro ativo | v4.2 | v4.2..v7.0 |
Pode funcionar com versões mais antigas do Ruby, mas é altamente recomendável atualizar para uma versão compatível.
Ele também deveria funcionar com JRuby, mas o ambiente de teste para isso em CI não tem sido confiável, portanto, não foi testado ativamente no momento.
Se você estiver usando o Sphinx, a versão 2.2.11 é recomendada, embora seja bastante antiga, pois funciona bem com bancos de dados PostgreSQL (mas se você estiver usando MySQL – ou índices em tempo real – então a versão 3.3.1 também deve servir).
Se você estiver optando pelo Manticore, a versão 2.8 ou mais recente funciona, mas a versão 4 ou mais recente é recomendada, pois é isso que é testado ativamente. As versões v4.2 e 5.0 apresentavam bugs na pesquisa de facetas, mas isso foi corrigido no Manticore v6.0.
Atualmente o Thinking Sphinx foi desenvolvido para suportar Rails/ActiveRecord 4.2 ou mais recente. Se você estiver usando Sinatra e ActiveRecord em vez de Rails, tudo bem - apenas certifique-se de adicionar a opção :require => 'thinking_sphinx/sinatra'
ao listar thinking-sphinx
em seu Gemfile.
Se você deseja suporte para ActiveRecord 3.2-4.1, consulte as versões 4.x do Thinking Sphinx. Ou, para suporte ao ActiveRecord 3.1, consulte as versões 3.0.x. Qualquer coisa mais antiga que isso, você ficará preso ao Thinking Sphinx v2.x (para Rails/ActiveRecord 3.0) ou v1.x (Rails 2.3). Observe que essas versões mais antigas não são mais suportadas ativamente.
Você precisará do Ruby padrão (v2.4 ou mais recente) ou do JRuby (9.1 ou mais recente).
MySQL 5.xe Postgres 8.4 ou superior são suportados.
Observe que este projeto possui um Código de Conduta do Colaborador. Ao participar deste projeto você concorda em cumprir seus termos.
Para contribuir, clone este repositório e dê uma boa olhada nas especificações – você notará a distinção entre testes de aceitação que realmente usam o Sphinx e passam pela pilha completa e testes de unidade (todo o resto) que usam testes liberais duplos para garantir que eles estamos apenas testando o comportamento da classe em questão. Descobri que isso leva a um design de código muito melhor.
Todo o desenvolvimento é feito no branch develop
; baseie quaisquer solicitações pull nesse branch. Escreva os testes e, em seguida, o código para que eles sejam aprovados e envie por meio de uma solicitação pull.
Para executar os testes, você precisará criar um banco de dados chamado 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;
Você pode então executar os testes de unidade com rake spec:unit
, os testes de aceitação com rake spec:acceptance
ou todos os testes apenas com rake
. Para executá-los com PostgreSQL, você precisará definir a variável de ambiente DATABASE
adequadamente:
DATABASE=postgresql rake
Copyright © 2007-2024, Thinking Sphinx é desenvolvido e mantido por Pat Allan e é lançado sob a licença aberta do MIT . Muito obrigado a todos que contribuíram com patches.