Criando uma busca com Views e Apache Solr

No Drupal, conseguimos criar uma busca customizada facilmente utilizando apenas o módulo Views. Porém, algumas funcionalidades importantes de uma busca, como relevância, performance, qualidade do resultado em relação ao termo pesquisado, deixam a desejar.

Para termos em nosso site uma busca de qualidade, vamos utilizar o módulo Views junto com o Apache Solr.

O objetivo deste tutorial não é ensinar como instalar o Apache Solr. Os exemplos serão feitos a partir de uma instalação do Apache Solr 4.3.0 já configurada. Para mais detalhes sobre o Apache Solr, consulte a documentação aqui.

Faça o download e habilite os seguintes módulos: 

drush dl views apachesolr apachesolr_views search_api search_api_solr
drush en views apachesolr apachesolr_views search_api search_api_solr apachesolr_access search_api_views

Após habilitar os módulos acima, vamos criar um Server do tipo Apache Solr.
Vá em: Administração - Configurações - Search Api (/admin/config/search/search_api). Clique em "Add Server".

Na opção "Service Class", selecione "Solr class". Em "Solr Service" informe o Http, Solr host, Solr port e Solr path, referentes à sua instalação do Apache Solr.


Após criar o Server, caso tudo tenha dado certo, você verá a seguinte tela exibindo o seu status:

Agora, vamos criar o Index que irá utilizar o Server criado. Clique em "Add index".
Em "Item type", selecione "Node". Como server, escolha o "Server Solr" que criamos anteriormente.


Após criar o Index, você verá uma tela contendo os campos que o Apache Solr pode indexar.  Selecione os que você desejar.
No meu exemplo, selecionei os seguintes campos: Node ID, Content type,  Title, Date created, Date changed, Author, Tags, The main body text » Text.

Os campos selecionados nessa tela serão os campos que estarão disponíveis para serem utilizados na View.

Após salvar seu Index, você verá as seguintes abas:


View: Contém o status do seu Index, onde você pode indexar ou limpar os itens indexados.
Edit: Informações do Index como: nome, descrição, Server, Cron batch size, etc.
Fields: Configuração dos campos que serão indexados pelo Apache Solr.
Filters: Configurações como: tipo de conteúdo que será indexado, Node access, Exclude unpublished nodes, Ignore case, Stopwords, etc. 

Feita as configurações desejadas, vamos criar a View que irá utilizar o Index como base.

Vá em: Estrutura - Views (/admin/structure/views). Clique em "Add new view".

Ao criar a View, em "Show", selecione o seu "Index Solr" criado.


Veja abaixo, minha View criada como exemplo, com os campos, ordenação e filtro:


Caso a sua View não retorne resultados, vá até a aba "View" localizada na configuração do seu Index Solr (/admin/config/search/search_api). Clique em "Index now". Em seguida, limpe o cache.

O resultado final é uma página de busca, integrando Views com o Apache Solr.


No próximo post, irei mostrar como aplicar os "Facets" na busca.