agora-team / elasticsearch-synonyymit

Elasticsearch

KoontitilannePyPI-versio

tämä arkisto sisältää synonyymien kuratoidun aineiston Solr-muodossa. Thesesynonyms voidaan käyttää Elasticsearch synonyymi Token suodatin kokoonpano.

muut apulaistyökalut tässä arkistossa:

  • synlint: komentorivityökalu nukkaa ja vahvistaa synonyymitiedostot.
  • synonyms.sublime-syntax: Syntaksikorostustiedosto Ylevälle tekstille 3.

jos käytät Elasticssearchia Djangon kanssa, saatat pitää dj-elasticsearch-flex hyödyllisenä.

miksi?

yrittäessäni määrittää synonyymejä Elasticsearchissa huomasin, että sen dokumentit ovat yllättävän hajallaan.Saatavilla olevat dokumentit eivät myöskään tee paljoa oikeutta ja jättävät monta nurkkatapausta väliin.

esimerkiksi virheellinen Solr-kartoitus: hello, world, lisättäisiin mielellään indeksikonfiguraatioon.Kuitenkin heti kun yrittäisit avata indeksin uudelleen, saisit malform_input_exception (keskustelukierre).

tämä arkisto ratkaisee tällaiset ongelmat linter-työkalulla, jolla voidaan validoida synonyymitiedostot etukäteen.

aineistot

data/ synonyymitiedostoja voidaan käyttää suoraan elasticsearch-konfiguraatiossa.

seuraavat aineistot ovat tällä hetkellä saatavilla:

  • be-ae: brittienglantia ja amerikanenglantia. Mistä AVKO.org.
  • medical-terms: Synonyymitiedosto, jossa on useita lääketieteellisiä terminologioita, lyhenteitä ja resoluutiota.

asennus

jos haluat käyttää synlint työkalua, asenna paketti PIP: stä käyttäen:

pip install elasticsearch-synonym-toolkit

Python-Paketin asennustunnus on es_synonyms. Tällöin asennetaan myös Linterin työkalu,es-synlint. Käytä sitä:

es-synlint 

käyttö

useimmissa tapauksissa haluat käyttää tätä moduulia apuna ladattaessa vahvistettuja synonyymejä tiedostosta tai url-osoitteesta:

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

konfigurointi synonyymi Tokenfilter Elasticsearch DSL Py, on erittäin helppoa, liian:

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

jos haluat käyttää taustalla olevaa linteriä, voit tuoda SynLint luokan.

kehitys

  • Kloonaa tämä arkisto.
  • asennuspaketin riippuvuudet kautta pip kanssa: pip install -r requirements.txt.
  • kokeisiin:
./panda test:all

lisenssi

Vastaa

Sähköpostiosoitettasi ei julkaista.