Pregunta

Tengo 700.000 nombres de calles, 8111 nombres de municipios y 80333 códigos postales de localidades.Me gustaría indexar toda esta información en solr.El usuario desea buscar esta información a través de un formulario de autocompletar ajax.Lo he probado con pocos datos y el comportamiento del formulario de autocompletar ajax está bien.

 <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>

El problema ocurre al cargar todos los datos en solr.

  • ¿Cómo debo cargar la información en el servidor solr (estoy en una aplicación de Grails y necesito cargar instancias que tienen la información sin un controlador de entrada de datos)? Hoy he pasado muchas horas para hacerlo y finalmente la consola de Grails falló :( --> ¿Debería usar un script de Grails en lugar de realizar un servicio y ejecutarlo con la consola de Grails?
  • ¿O debería usar el controlador de entrada de datos para cargarlo más rápido?¿Puedo concatenar valores de cadena de diferentes columnas de diferentes tablas con un controlador de entrada de datos?

(Está bien tener un documento diferente para cada uno (700.000 + 8111 + 80.333 documentos)??)

gracias por tu tiempo

¿Fue útil?

Solución

Supongo que los municipios, los nombres de las calles y los códigos postales deben autocompletarse por separado.En este caso usarías un separado núcleo solar para cada uno.

¿O debería usar el controlador de entrada de datos para cargarlo más rápido?

DIH será bastante rápido y, siempre que esta información no cambie con mucha frecuencia, debería estar bien hacerlo de esta manera.

¿Puedo concatenar valores de cadena de diferentes columnas de diferentes tablas con un controlador de entrada de datos?

Sí;en data-config.xml das especifico SQL consulta y puede utilizar la concatenación nativa de la base de datos (p. ej. || en oráculo).

Otros consejos

En serio, escriba un script de shell y use enrollamiento para enviar las actualizaciones a SOLR.

Estás tratando de disparar latas de la pared con un cañón montado en un barco flotando en su piscina. No necesitas un cañón o un barco o una piscina. Simplemente colóquelo con una pistola de aire y póngase las actualizaciones de una por una hasta que termine.

Para un script de concha de ejemplículos completos con las actualizaciones de Sample Solr, descargue el binario SOLR, ya sea apache-solr-3.5.0.tgz o apache-solr-3.5.0.zip desde un espejo cerca de usted. Encuentra el espejo en http://lucene.apache.org/solr/downloads.html

Desembale el archivo, vaya al directorio de ejemplo y siga estas instrucciones http://lucene.apache.org/solr/tutorial.html

Si está en UNIX, solo use Post.Sh.

Por cierto, marque la versión SOLR que ha instalado en su servidor. Si no es 3.50, ¿por qué estás usando una versión antigua cuando tiene el más nuevo aquí, ahora mismo?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top