agora-csapat / elasticsearch-Szinonímák

 Elasticsearch Szinonimák

Build StatusPyPI Version

ez az adattár tartalmaz egy kurátora adathalmaz szinonimák Solr formátumban. Ezek a szinonímák használhatók az Elasticsearch Szinonima Token szűrő konfigurációjához.

további segítő eszközök ebben az adattárban:

  • synlint: parancssori eszköz a szinonima fájlok szöszöléséhez és érvényesítéséhez.
  • synonyms.sublime-syntax: Szintaxiskiemelő fájl a fenséges szöveghez 3.

ha az Elasticssearch-et használja a Django-val, akkor a dj-elasticsearch-flex hasznos lehet.

miért?

az Elasticsearch szinonimáinak konfigurálása során azt tapasztaltam, hogy a hozzá tartozó dokumentumok meglepően szétszórtak.A rendelkezésre álló dokumentumok sem sok igazságot tesznek, és sok sarok esetet kihagynak.

például egy helytelen Solr leképezés: hello, world, boldogan hozzáadódik az index konfigurációhoz.Azonban, amint megpróbálja újra megnyitni az indexet, akkor kap egy malform_input_exception (vita szál).

ez az adattár megoldja ezeket a problémákat egy linter eszközzel, amely felhasználható a synonymfiles előzetes érvényesítésére.

adatkészletek

a data/ szinonimafájljai közvetlenül használhatók az elasticsearch konfigurációban.

jelenleg a következő adatkészletek állnak rendelkezésre:

  • be-ae: Brit angol és Amerikai Angol helyesírások. Tól től AVKO.org.
  • medical-terms: szinonim fájl több orvosi terminológiával, rövidítéssel és felbontással.

telepítés

ha a synlint eszközt szeretné használni, Telepítse a csomagot a PIP segítségével:

pip install elasticsearch-synonym-toolkit

a Python csomag es_synonyms néven van telepítve. Ez egy linter eszközt is telepít,es-synlint. Használja azt:

es-synlint 

használat

a legtöbb esetben ezt a modult segítőként szeretné használni az érvényesített szinonimák fájlból vagy url-ből történő betöltéséhez:

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

konfigurálása szinonimája Tokenfilter a Elasticsearch DSL Py, nagyon egyszerű, is:

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

az alapul szolgáló linter használatához importálhatja a SynLint osztályt.

fejlesztés

  • klónozza ezt az adattárat.
  • telepítse a csomagfüggőségeket a pipsegítségével: pip install -r requirements.txt.
  • tesztek futtatásához:
./panda test:all

Engedély

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.