Como instalar e configurar o Sphinx Search

Hoje vou iniciar uma série de posts sobre o Sphinx Search, um servidor de busca fulltext open source e escrito em C++, atualmente ele roda em Linux (RedHat, Ubuntu, etc), Windows, MacOS, Solaris, FreeBSD, e alguns outros sistemas. Com o Sphinx você pode gerar índices em batch, a partir de um banco de dados relacional, NoSql, ou simplesmente arquivos, de maneira fácil e rápida.

Para instalar no linux primeiro você deve baixar uma versão na página de download. Após feito o download você irá executar os comandos abaixo:

$ tar xzvf sphinx-VERSÃO.tar.gz
$ cd sphinx

Após descompactar o Sphinx, deveremos rodar o programa de configuração com alguns parâmetros. Como irei trabalhar com o MySQL iremos configurar o sphinx já com suporte ao MySQL, adicionando o parâmetro –with-mysql, e também iremos falar onde o Sphinx será instalado com o parâmetro –prefix

$ ./configure --with-mysql --prefix=/usr/local/sphinx

Após isso iremos gerar os binários do sphinx com o comando make, e finalmente instalar com o make install

$ make
$ make install

Após isso, o sphinx já estará na pasta /usr/local/sphinx. Agora deveremos criar nosso arquivo sphinx.conf, que é onde ficará as configurações de banco de dados etc. Para este pequeno tutorial iremos utilizar o sphinx.conf que vem como exemplo, para isso renomeie o arquivo /usr/local/sphinx/etc/sphinx.conf.dist para /usr/local/sphinx/etc/sphinx.conf. Abra este arquivo e mude o endereço do banco usuário e senha.

Após a edição do arquivo sphinx.conf, crie um banco de dados chamado “test” e rode o comando abaixo:

$ mysql -u test < /usr/local/sphinx/etc/example.sql

Rode o programa “indexer” para criar seu índice.

$ cd /usr/local/sphinx/etc
$ /usr/local/sphinx/bin/indexer --all

Agora é só fazer buscas em seu índice! Para realizar buscas via linha de comando, execute os comandos abaixo:

$ cd /usr/local/sphinx/etc
$ /usr/local/sphinx/bin/search test

Para testar o sphinx, no PHP você poderá executar o código de teste que vem fica na pasta onde você descompactou o sphinx, para tal você deverá inicializar o “daemon” (servidor) do Sphinx, com os comandos abaixo:

$ cd /usr/local/sphinx/etc
$ /usr/local/sphinx/bin/searchd

Quando seu servidor estiver rodando, basta executar o script test.php que se encontra na pasta api.

$ cd sphinx/api
$ php test.php test

Qualquer dúvida, deixe nos comentários!

Em um próximo post, iremos criar uma aplicação de teste, com uma base diferente da que o sphinx disponibiliza.

3 Comentários

  1. Rodrigosays:

    Olá amigo, você conseguiu funcionar com, os stopwords e wordforms em português?

  2. Evertonsays:

    Olá,

    consegui configurar o sphinx, mas não estou conseguindo configura-lo para iniciar automático junto com a inicialização da máquina, pode me ajudar com alguma dica?

Deixe um comentário

Por favor, seja educado. Seu e-mail não será publicado e os campos obrigatórios estão marcados.