Configurando múltiplos núcleos para o apache solr para o Ubuntu 12.04 e o Drupal 7

3

Estou configurando o solr localmente para meus propósitos de desenvolvimento e integração com o Drupal 7. Não estou muito familiarizado com o tomcat. Meu plano de fundo tem sido principalmente configurações de LAMP.

Então eu fui e instalei o pacote fornecido pelo Ubuntu para o apache solr seguindo este guia .

  • sudo apt-get install tomcat6 tomcat6-admin tomcat6-common tomcat6-user tomcat6-docs tomcat6-examples
  • sudo apt-get install solr-tomcat

Eu tenho isso funcionando. O gerenciador de pacotes apt-get faz um ótimo trabalho e me permite configurar o solr, mas com um núcleo.

Quais etapas precisam ser tomadas para ativar a configuração multi-core para o apache solr?

E abaixo está o meu arquivo solr.xml :

sudo nano /var/lib/tomcat6/conf/Catalina/localhost/solr.xml

<!--
    Context configuration file for the Solr Web App
-->

<Context path="/solr" docBase="/usr/share/solr"
   debug="0" privileged="true" allowLinking="true" crossContext="true">
  <!-- make symlinks work in Tomcat -->
  <Resources className="org.apache.naming.resources.FileDirContext" allowLinking="true" />

  <Environment name="solr/home" type="java.lang.String" value="/usr/share/solr" override="true" />
</Context>
    
por chrisjlee 16.10.2012 / 23:45

1 resposta

1

O guia no OP é um ponto de partida rápido e não toca na configuração de vários núcleos.

Existe um guia oficial no site do solr: link

É muito longo. Vou citar a parte inicial da configuração.

Cotação parcial

Configuração

Para ativar o suporte para administração dinâmica do SolrCore, coloque um arquivo denominado solr.xml no diretório solr.home. Aqui está um exemplo de arquivo solr.xml:

<solr persistent="true" sharedLib="lib">
 <cores adminPath="/admin/cores">
  <core name="core0" instanceDir="core0" />
  <core name="core1" instanceDir="core1" />
 </cores>
</solr>

Você também pode especificar propriedades no solr.xml que podem ser usadas nos arquivos solrconfig.xml e schema.xml.

<solr persistent="true" sharedLib="lib">
 <property name="snapshooter" value="/home/solr-user/solr/bin/snapshooter.sh" />
 <cores adminPath="/admin/cores">
  <core name="core0" instanceDir="core0">
    <property name="dataDir" value="/data/core0" />
  </core>
  <core name="core1" instanceDir="core1" />
 </cores>
</solr>

As propriedades podem ser o escopo do contêiner (ou seja, especificado após < solr > mas fora de um elemento < core >), nesse caso, ele é automaticamente herdado por cada núcleo. Portanto, eles podem ser usados em qualquer arquivo de configuração dos núcleos.

As propriedades também podem ser definidas no escopo de um núcleo (dentro do elemento < core >), em cujo caso elas podem ser usadas somente no escopo desse núcleo. Se uma propriedade com esse nome já existir no escopo do contêiner, ela será substituída.

Além deles, algumas propriedades são adicionadas automaticamente no escopo principal. Eles são:

solr.core.name -- The core's name as defined in solr.xml

solr.core.instanceDir -- The core's instance directory (i.e. the directory under which that core's conf/ and data/ directory are located)

solr.core.dataDir -- The core's data directory (i.e. the directory under which that core's index directory are located)

solr.core.configName -- The name of the core's config file (solrconfig.xml by default)

solr.core.schemaName -- The name of the core's schema file (schema.xml by default) 

Essas propriedades podem ser usadas dentro dos arquivos solrconfig.xml e schema.xml, especificando uma expressão com, opcionalmente, um valor padrão.

// Without a default value
${snapshooter}
// With a default value
${snapshooter:./solr/bin/snapshooter.sh}

A expressão acima será avaliada para o valor especificado em solr.xml para o nome da propriedade "solr.snapshooter". Se nenhum valor for definido em solr.xml, ele verificará se existe uma propriedade do sistema com esse nome, caso contrário, usará o valor padrão especificado. Se nenhum valor padrão for especificado, uma exceção de tempo de execução será lançada e o núcleo poderá falhar na inicialização.

    
por John Siu 31.01.2013 / 21:34