agora-team / elasticsearch-sinónimos

 Sinónimos de Elasticsearch

Estado de compilación  Versión PyPI

Este repositorio contiene un conjunto de datos curado de sinónimos en formato Solr. Estos sinónimos se pueden usar para la configuración del filtro de token Sinónimo de Elasticsearch.

Herramientas auxiliares adicionales en este repositorio:

  • synlint: Herramienta de línea de comandos para pelar y validar los archivos de sinónimos.
  • synonyms.sublime-syntax: Archivo de resaltado de sintaxis para Sublime Text 3.

Si está utilizando Elasticssearch con Django, puede que dj-elasticsearch-flex le resulte útil.

¿Por qué?

Al intentar configurar Sinónimos en Elasticsearch, descubrí que los documentos para ello están sorprendentemente dispersos.Los documentos que están disponibles tampoco hacen mucha justicia y se pierden muchos casos de esquina.

Por ejemplo, una asignación Solr incorrecta: hello, world, se agregaría felizmente en la configuración de índice.Sin embargo, tan pronto como intentaras volver a abrir el índice, obtendrías un malform_input_exception (hilo de discusión).

Este repositorio resuelve estos problemas con una herramienta linter que se puede usar para validar los archivos de sinónimos de antemano.

Conjuntos de datos

Los archivos de sinónimos en data/ se pueden usar directamente en la configuración de elasticsearch.

Los siguientes conjuntos de datos están disponibles actualmente:

  • be-ae: Ortografía de Inglés Británico e Inglés Americano. De AVKO.org.
  • medical-terms: Archivo de sinónimos con varias terminologías médicas, abreviaturas y resolución.

Instalación

Si desea utilizar la herramienta synlint, instale el paquete desde PIP utilizando:

pip install elasticsearch-synonym-toolkit

El paquete Python se instala como es_synonyms. Esto también instalará una herramienta linter,es-synlint. Úsalo con:

es-synlint 

Uso

En la mayoría de los casos, querrá usar este módulo como ayudante para cargar sinónimos validados desde un archivo o una url:

from es_synonyms import load_synonyms# Load synonym file at some URL:be_ae_syns = load_synonyms('https://to.noop.pw/2sI9x4s')# Or, from filesystem:other_syns = load_synonyms('data/be-ae.synonyms')

Configurar Synonym Tokenfilter con Elasticsearch DSL Py también es muy fácil:

from elasticsearch_dsl import analyzer, token_filterbe_ae_syns = load_synonyms('https://to.noop.pw/2sI9x4s')# Create a tokenfilterbrit_spelling_tokenfilter = token_filter( 'my_tokenfilter', # Any name for the filter 'synonym', # Synonym filter type synonyms=be_ae_syns # Synonyms mapping will be inlined)# Create analyzerbrit_english_analyzer = analyzer( 'my_analyzer', tokenizer='standard', filter=)

Para usar el linter subyacente, puede importar la clase SynLint.

Desarrollo

  • Clonar este repositorio.
  • Instalar dependencias de paquetes a través de pip con: pip install -r requirements.txt.
  • Para realizar pruebas:
./panda test:all

Licencia

Deja una respuesta

Tu dirección de correo electrónico no será publicada.