Preparação do Ambeinte e Etsrutura do Solr
O Apache Solr é uma plataforma de busca corporativa baseada em Java. Para operá-lo, é necessário um ambiente com JDK e um servidor de aplicação como o Apache Tomcat. A stack utilizada neste procedimento compreende o CentOS 6.4, JDK 1.6, Tomcat 6 e Solr 4.7.2. Recomenda-se evitar versões mais recentes do Solr (como a 4.9) caso o JDK instalado seja antigo, pois isso resultará em falhas de compatibilidade de bytecode.
O pacote de distribuição do Solr é dividido em dois componentes principais: o arquivo de aplicação web (dist/solr-4.7.2.war) e o diretório de configuração e dados (example/solr). O arquivo de configuração solrconfig.xml depende de bibliotecas externas localizadas nos diretórios contrib e dist. As referências de bibliotecas no arquivo de configuração devem ser ajustadas conforme a estrutura de diretórios:
<!-- Mapeamento de bibliotecas externas no solrconfig.xml -->
<lib dir="../../../contrib/extraction/lib" regex=".*\.jar" />
<lib dir="../../../dist/" regex="solr-cell-\d.*\.jar" />
<lib dir="../../../contrib/clustering/lib/" regex=".*\.jar" />
<lib dir="../../../dist/" regex="solr-clustering-\d.*\.jar" />
<lib dir="../../../contrib/langid/lib/" regex=".*\.jar" />
<lib dir="../../../dist/" regex="solr-langid-\d.*\.jar" />
<lib dir="../../../contrib/velocity/lib" regex=".*\.jar" />
<lib dir="../../../dist/" regex="solr-velocity-\d.*\.jar" />
Implantação do WAR e Configuração do Solr Home
Siga os passos abaixo para realizar o deploy da aplicação e vincular o diretório de configuração:
- Copie o arquivo
solr-4.7.2.warpara o diretóriowebappsdo Tomcat, renomeando-o parasolr.war. Ao reiniciar o serviço, o Tomcat descompactará o arquivo automaticamente. - Copie os diretórios
contribedistpara dentro da pastaexample/solr. Certifique-se de que os caminhos relativos nosolrconfig.xmlapontem corretamente para essas bibliotecas. Em seguida, compacte a pastasolrem um arquivo ZIP e extraia-o no diretório raiz do Tomcat (por exemplo,/usr/local/tomcat/solr). - Edite o arquivo
WEB-INF/web.xmlda aplicação Solr descompactada para definir a variável de ambiente que aponta para o diretório raiz do Solr:
<env-entry>
<env-entry-name>solr/home</env-entry-name>
<env-entry-value>/usr/local/tomcat/solr</env-entry-value>
<env-entry-type>java.lang.String</env-entry-type>
</env-entry>
Após reiniciar o Tomcat, a interface de administração estará acessível através do endereço http://localhost:8080/solr.
Integração do Analisador IK (IK Analyzer)
Para habilitar a tokenização de texto em chinês, é necessário integrar o IK Analyzer ao núcleo do Solr.
- Extraia o pacote do IK Analyzer. Mova o arquivo de configuração (
IKAnalyzer.cfg.xml), o binário principal (IKAnalyzer2012FF_u1.jar) e o dicionário de palavras de parada (stopword.dic) para o diretórioWEB-INF/libda aplicação Solr no Tomcat. - Registre o novo tipo de campo no arquivo
schema.xml, loclaizado no diretório de configuração do núcleo (collection1/conf/):
<fieldType name="text_ik" class="solr.TextField">
<analyzer type="index" class="org.wltea.analyzer.lucene.IKAnalyzer" isMaxWordLength="false"/>
<analyzer type="query" class="org.wltea.analyzer.lucene.IKAnalyzer" isMaxWordLength="true"/>
</fieldType>
- Atualize os campos desejados no
schema.xmlpara utilizar o novo tipo de dados. Por exemplo, altere o tipo do campo de autor:
<field name="author" type="text_ik" indexed="true" stored="true"/>
Resolução de Problemas de Logging
O pacote WAR do Solr 4.7.2 não inclui as dependências de logging por padrão. Caso os logs não sejam configurados corretamente, o servidor lançará a exceção Could not find necessary SLF4j logging jars durante a inicialização do filtro SolrRequestFilter. Para corrigir isso, copie todos os arquivos JAR do diretório example/lib/ext e o arquivo log4j.properties de example/resources diretamente para o diretório lib do Tomcat.