agora-team / elasticsearch-synonymer

Elasticsearch Synonymer

Byggestatus  PyPI Versjon

dette depotet inneholder et kuratert datasett av synonymer I Solr-Format. Thesesynonyms kan brukes Til Elasticsearch Synonym Token Filter konfigurasjon.

Ekstra hjelpeverktøy i dette depotet:

  • synlint: Command verktøy for å lo og validere synonym filer.
  • synonyms.sublime-syntax: Syntax highlighting fil for Sublime Tekst 3.

hvis Du bruker Elasticssearch Med Django, kan du finne dj-elasticsearch-flex nyttig.

Hvorfor?

Prøver å konfigurere Synonymer I Elasticsearch, fant jeg ut at docs for det er overraskende spredt.Dokumentene som er tilgjengelige, gjør heller ikke mye rettferdighet og savner mange hjørnesaker.

for eksempel vil en feil Solr-kartlegging: hello, world, gjerne bli lagt til i indekskonfigurasjon.Men så snart du vil prøve å åpne indeksen igjen, vil du få en malform_input_exception (diskusjonstråd).

dette depotet løser slike problemer med et linter-verktøy som kan brukes til å validere synonymfilene på forhånd.

Datasett

synonymfilene i data/ kan brukes direkte i elasticsearch-konfigurasjonen.

Følgende datasett er for tiden tilgjengelige:

  • be-ae: Britisk engelsk Og Amerikansk engelsk Stavemåter. Fra AVKO.org.
  • medical-terms: Et Synonym fil med Flere Medisinske terminologier, forkortelser og oppløsning.

Installasjon

hvis du vil bruke verktøyet synlint, installerer du pakken fra PIP ved hjelp av:

pip install elasticsearch-synonym-toolkit

Python-Pakken er installert som es_synonyms. Dette vil også installere et linterverktøy,es-synlint. Bruk den med:

es-synlint 

Bruk

I de fleste tilfeller vil du bruke denne modulen som en hjelper for å laste validerte synonymer fra en fil eller en 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')

Konfigurere Synonym Tokenfilter Med Elasticsearch DSL Py, er veldig enkelt, også:

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

for å bruke den underliggende linter, kan du importere SynLint klasse .

Utvikling

  • Klone dette depotet.
  • Installer pakkeavhengigheter via pip med: pip install -r requirements.txt.
  • for å kjøre tester:
./panda test:all

Lisens

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert.