Pergunta

Tenho 700.000 nomes de ruas, 8.111 nomes de municípios e 80.333 códigos postais de localidades.Gostaria de indexar todas essas informações no solr.O usuário deseja pesquisar essas informações por meio de um formulário de preenchimento automático Ajax.Eu provei isso com poucos dados e o comportamento do formulário de preenchimento automático do ajax está ok.

 <fieldType name="text" class="solr.TextField" positionIncrementGap="100">
  <analyzer type="index">
    <tokenizer class="solr.WhitespaceTokenizerFactory"/>
    <filter class="solr.StopFilterFactory"
            ignoreCase="true"
            words="stopwords.txt"
            enablePositionIncrements="true"
            />
    <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="0" splitOnCaseChange="1"/>
    <filter class="solr.LowerCaseFilterFactory"/>
    <filter class="solr.SnowballPorterFilterFactory" language="English" protected="protwords.txt"/>
  </analyzer>
  <analyzer type="query">
    <tokenizer class="solr.WhitespaceTokenizerFactory"/>
    <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
    <filter class="solr.StopFilterFactory"
            ignoreCase="true"
            words="stopwords.txt"
            enablePositionIncrements="true"
            />
    <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="0" catenateNumbers="0" catenateAll="0" splitOnCaseChange="1"/>
    <filter class="solr.LowerCaseFilterFactory"/>
    <filter class="solr.SnowballPorterFilterFactory" language="English" protected="protwords.txt"/>
  </analyzer>
</fieldType>

O problema acontece ao carregar todos os dados no solr

  • Como devo carregar as informações para o servidor solr (estou em um aplicativo grails e preciso carregar instâncias que possuem as informações sem manipulador de entrada de dados) Hoje demorei muitas horas para fazer isso e finalmente o console grails travou :( -> devo usar um script Grails em vez de fazer um serviço e executá-lo com o console Grails?
  • Ou devo usar o manipulador de entrada de dados para carregá-lo mais rápido?Posso concatenar valores de string de colunas diferentes de tabelas diferentes com o manipulador de entrada de dados?

(Não há problema em ter um documento diferente para cada um (700.000 + 8111 + 80.333 documentos) ??)

Obrigado pelo seu tempo

Foi útil?

Solução

Presumo que seus municípios, nomes de ruas e códigos postais devam ser preenchidos automaticamente separadamente.Neste caso você usaria um separado núcleo solr para cada um.

Ou devo usar o manipulador de entrada de dados para carregá-lo mais rápido?

O DIH será muito rápido e, desde que essas informações não mudem com muita frequência, não há problema em fazê-lo dessa maneira.

Posso concatenar valores de string de colunas diferentes de tabelas diferentes com o manipulador de entrada de dados?

Sim;em data-config.xml você dá específico SQL consulta e pode usar a concatenação nativa do banco de dados (por exemplo, || no oráculo).

Outras dicas

Sério, escreva um script de shell e use curl para enviar as atualizações para o SOLR.

Você está tentando atirar latas na parede com um canhão montado em um navio flutuando em sua piscina.Você não precisa de um canhão, de um navio ou de uma piscina.Basta ficar lá com uma pistola de ar comprimido e lançar as atualizações uma por uma até terminar.

Para obter um exemplo de script de shell completo com amostras de atualizações do SOLR, baixe o binário SOLR, apache-solr-3.5.0.tgz ou apache-solr-3.5.0.zip de um espelho próximo a você.Encontre o espelho em http://lucene.apache.org/solr/downloads.html

Descompacte o arquivo, vá para o diretório de exemplo e siga estas instruçõeshttp://lucene.apache.org/solr/tutorial.html

Se você estiver no UNIX, basta usar post.sh.

A propósito, verifique a versão do SOLR que você instalou no seu servidor.Se não for 3.50, por que você está usando uma versão antiga quando tem a mais nova aqui e agora?

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top