agora-team / elasticsearch-synonimy

 Elasticsearch Synonimy

Stan kompilacji  Wersja PyPI

to repozytorium zawiera wyselekcjonowany zbiór danych synonimów w formacie Solr. Teesynonimy mogą być używane do konfiguracji filtra symboli Elasticsearch.

dodatkowe narzędzia pomocnicze w tym repozytorium:

  • synlint: narzędzie wiersza poleceń do lintowania i sprawdzania poprawności plików synonimów.
  • synonyms.sublime-syntax: Plik podświetlania składni dla Sublime Text 3.

jeśli używasz Elasticssearch z Django, możesz znaleźć dj-elasticsearch-flex przydatne.

dlaczego?

próbując skonfigurować synonimy w Elasticsearch, zauważyłem, że dokumenty dla niego są zaskakująco rozproszone.Dokumenty, które są dostępne, również nie robią wiele sprawiedliwości i pomijają wiele narożnych przypadków.

na przykład, niepoprawne mapowanie Solr: hello, world, byłoby szczęśliwie dodane w konfiguracji indeksu.Jednak, gdy tylko spróbujesz ponownie otworzyć indeks, otrzymasz malform_input_exception(wątek dyskusji).

to repozytorium rozwiązuje takie problemy za pomocą narzędzia linter, które może być użyte do uprzedniej walidacji plików synonimów.

Datasets

pliki synonimów w data/ mogą być używane bezpośrednio w konfiguracji elasticsearch.

obecnie dostępne są następujące zbiory danych:

  • be-ae: Brytyjski angielski i amerykański angielski pisowni. Od AVKO.org.
  • medical-terms: plik synonimów z kilkoma Terminologiami medycznymi, skrótami i rozwiązaniami.

instalacja

jeśli chcesz użyć narzędzia synlint, zainstaluj pakiet z PIP za pomocą:

pip install elasticsearch-synonym-toolkit

pakiet Pythona jest instalowany jako es_synonyms. Spowoduje to również zainstalowanie narzędzia linter,es-synlint. Użyj go z:

es-synlint 

użycie

w większości przypadków warto użyć tego modułu jako pomocnika do ładowania sprawdzonych synonimów z pliku lub adresu 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')

Konfigurowanie synonimu Tokenfilter z Elasticsearch DSL Py jest również bardzo proste:

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

aby użyć lintera bazowego, możesz zaimportować klasę SynLint.

rozwój

  • Sklonuj to repozytorium.
  • zainstaluj zależności pakietów przez pip za pomocą: pip install -r requirements.txt.
  • aby uruchomić testy:
./panda test:all

Licencja

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.