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.
Olá amigo, você conseguiu funcionar com, os stopwords e wordforms em português?
Olá Rodrigo,
Não cheguei a usar stopwords, mas wordforms funcionou perfeitamente!
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?