agora-team / elasticsearch-synonymer

 Elasticsearch Synonymer

ByggstatusPyPI Version

detta arkiv innehåller en kurerad dataset med synonymer i Solr-Format. Thesesynonyms kan användas för Elasticsearch Synonym Token filter konfiguration.

ytterligare hjälpverktyg i detta arkiv:

  • synlint: kommandoradsverktyg för att ludd och validera synonymfilerna.
  • synonyms.sublime-syntax: Syntaxmarkering fil för Sublime Text 3.

om du använder Elasticssearch med Django kan du hitta dj-elasticsearch-flex användbar.

varför?

försöker konfigurera synonymer i Elasticsearch, jag fann att dokument för det är förvånansvärt utspridda.De dokument som finns tillgängliga gör inte heller mycket rättvisa och missar många hörnfall.

till exempel skulle en felaktig Solr-mappning: hello, world, gärna läggas till i indexkonfigurationen.Men så snart du försöker öppna indexet igen får du en malform_input_exception (diskussionstråd).

detta arkiv löser sådana problem med ett linter-verktyg som kan användas för att validera synonymfilerna i förväg.

dataset

synonymfilerna i data/ kan användas direkt i elasticsearch-konfigurationen.

följande dataset är för närvarande tillgängliga:

  • be-ae: Brittisk Engelska och Amerikansk Engelska stavning. Från AVKO.org.
  • medical-terms: en Synonymfil med flera medicinska terminologier, förkortningar och upplösning.

Installation

om du vill använda verktyget synlint installerar du paketet från PIP med:

pip install elasticsearch-synonym-toolkit

Python-paketet är installerat som es_synonyms. Detta kommer också att installera ett linter-verktyg,es-synlint. Använd den med:

es-synlint 

användning

i de flesta fall vill du använda den här modulen som en hjälpare för att ladda validerade synonymer från 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')

konfigurera Synonym Tokenfilter med Elasticsearch DSL Py, är mycket lätt, för:

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

om du vill använda den underliggande linter kan du importera SynLint klass.

utveckling

  • klona detta arkiv.
  • installera paketberoenden via pipmed: pip install -r requirements.txt.
  • för att köra tester:
./panda test:all

licens

Lämna ett svar

Din e-postadress kommer inte publiceras.