agora-team / elasticsearch-sinonimi

Elasticsearch Sinonimi

Stato generazionePyPI Versione

Questo repository contiene un set di dati a cura di sinonimi in Solr Formato. Questi sinonimi possono essere utilizzati per la configurazione del filtro token sinonimo Elasticsearch.

Strumenti di supporto aggiuntivi in questo repository:

  • synlint: Strumento a riga di comando per lint e convalidare i file sinonimo.
  • synonyms.sublime-syntax: File di evidenziazione della sintassi per Sublime Text 3.

Se stai usando Elasticssearch con Django, potresti trovare dj-elasticsearch-flex utile.

Perché?

Cercando di configurare i sinonimi in Elasticsearch, ho scoperto che i documenti per esso sono sorprendentemente sparsi.I documenti che sono disponibili non fanno molta giustizia e perdere molti casi d’angolo.

Ad esempio, una mappatura Solr errata: hello, world, sarebbe felicemente aggiunta nella configurazione dell’indice.Tuttavia, non appena proverai a riaprire l’indice, otterrai un malform_input_exception (thread di discussione).

Questo repository risolve tali problemi con uno strumento linter che può essere utilizzato per convalidare i synonymfiles in anticipo.

Dataset

I file sinonimo in data/ possono essere utilizzati direttamente nella configurazione elasticsearch.

Sono attualmente disponibili i seguenti set di dati:

  • be-ae: Ortografia inglese britannico e inglese americano. Da AVKO.org.
  • medical-terms: Un file sinonimo con diverse terminologie mediche, abbreviazioni e risoluzione.

Installazione

Se si desidera utilizzare lo strumento synlint, installare il pacchetto da PIP utilizzando:

pip install elasticsearch-synonym-toolkit

Il pacchetto Python è installato come es_synonyms. Questo installerà anche uno strumento linter,es-synlint. Utilizzare con:

es-synlint 

Utilizzo

Nella maggior parte dei casi, è opportuno utilizzare questo modulo, come un supporto per il caricamento convalidato sinonimi da un file o un 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')

Configurazione Sinonimo Tokenfilter con Elasticsearch DSL Py, è molto facile, troppo:

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

Per utilizzare il linter sottostante, è possibile importare SynLint classe.

Sviluppo

  • Clona questo repository.
  • Installa le dipendenze dei pacchetti tramite pip con: pip install -r requirements.txt.
  • Per eseguire i test:
./panda test:all

Licenza

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.