Herramientas de usuario

Herramientas del sitio


sistemas:ir:solr

¡Esta es una revisión vieja del documento!


Solr

Básicos

Instalación e inicio

Solr es un sistema de recuperación de información. Se basa en un servidor de búsqueda REST donde se indexan los documentos en formato XML, JSON o HTTP para después realizar consultas sobre estos.
Podemos descargarlo desde aquí o, en una distribución Linux, instalando el paquete solr-common.
Requiere de un servidor de aplicaciones Java, aunque la descarga provee un pequeño servidor ya configurado que podemos ejecutar desde la carpeta examples mediante:

$ java -jar start.jar

Y al cual accederíamos a partir de la url: http://localhost:8983/solr/admin/
Si en cambio lo instalamos en una distribución linux se serviría mediante Tomcat, donde el puerto por defecto es 8080.

Acciones básicas

La acción de indexar crea el índice a partir de los ficheros indicados. Una vez realizado el índice podremos consultar por sus ficheros (acción de retrieval).
La descarga de Solr viene con aplicaciones (post.jar y post.sh) para la comunicación con el servidor. Por ejemplo…

Indexar

$ java -jar post.jar solr.xml monitor.xml

Eliminar

Tras eliminar un elemento deberemos hacer un commit ($ java -jar post.jar debería funcionar). Eliminar por identificador:

$ java -Ddata=args -Dcommit=no -jar post.jar "<delete><id>SP2514N</id></delete>"

Eliminar por nombre:

$ java -Ddata=args -jar post.jar "<delete><query>name:DDR</query></delete>"

Consulta de datos

  • q=video&fl=name,id, consulta por video sólo retornando los campos name e id.
  • q=video&fl=name,id,score, lo mismo que la anterior pero además mostrando el score dado.
  • q=video&fl=*,score, todos los campos indexados más el score.
  • q=video&wt=json, respuesta en formato json.
  • q=video&sort=price desc, respuesta devolviendo por precio descendente.
  • q=video&sort=inStock asc, price desc
  • q=video&sort=score desc

Schema

Es el elemento que define cómo se trata el indexado y la recuperación de los datos. Podemos acceder a partir de: <url solr>/admin/schema.jsp.

Tipos de datos

Los tipos de datos posibles los encontramos dentro de la sección <types>, en la lista <fieldtype>. Podemos configurar su comportamiento (si los strings se comprimirán, si serán indexados…) a partir de aquí.

Campos

En la sección <fields> se declaran elementos <field> que son lo que se utilizará en tu aplicación.
Cada <field> tiene un nombre y un tipo asociado.

Opciones comunes de los campos

  • default
  • indexed
  • stored
  • compressed
  • compressedThreshold
  • multiValued
  • moitNorms
  • omitTermFreqAndPositions
  • omitPositions

Otra configuración

Retrieval

Formato de queries

Uso de Solr desde programación

SolrPy

Es una librería para el acceso a Solr desde Python. Es fácilmente instalable (con easy_install solrpy) y un ejemplo de uso sería:

import solr
# create a connection to a solr server
s = solr.SolrConnection('http://example.org:8083/solr')
# add a document to the index
s.add(id=1, title='Lucene in Action', author=['Erik Hatcher', 'Otis Gospodnetić'])
s.commit()
# do a search
response = s.query('title:lucene')
for hit in response.results:
    print hit['title']
sistemas/ir/solr.1322156697.txt.gz · Última modificación: 2020/05/09 09:24 (editor externo)