agora-team / elasticsearch-Synoniemen

Elasticsearch Synoniemen

BouwstatusPyPI versie

deze repository Bevat een samengestelde dataset van synoniemen in Solr-formaat. Deze Synoniemen kunnen worden gebruikt voor Elasticsearch synoniem Token Filter configuratie.

aanvullende hulpprogramma ‘ s in deze repository:

  • synlint: Commandline tool om te pluizen en valideren van de Synoniemen bestanden.
  • synonyms.sublime-syntax: Syntaxis highlighting bestand voor sublieme tekst 3.

Als u Elasticssearch gebruikt met Django, kunt u dj-elasticsearch-flex nuttig vinden.

waarom?

bij het configureren van synoniemen in Elasticsearch, vond ik dat documenten voor het verrassend verspreid zijn.De documenten die beschikbaar zijn doen ook niet veel recht en missen veel corner cases.

bijvoorbeeld, een onjuiste Solr-toewijzing: hello, world, zou graag worden toegevoegd in de indexconfiguratie.Echter, zodra je zou proberen om de index opnieuw te openen, krijg je een malform_input_exception (discussie thread).

deze repository Lost dergelijke problemen op met een linter tool die kan worden gebruikt om de synonym bestanden vooraf te valideren.

Datasets

de Synoniemen In data/ kunnen direct worden gebruikt in elasticsearch configuratie.

de volgende datasets zijn momenteel beschikbaar:

  • be-ae: Brits Engels en Amerikaans Engels spellingen. Van AVKO.org.
  • medical-terms: een synoniem bestand met verschillende medische terminologieën, afkortingen en resolutie.

installatie

als u het synlint gereedschap wilt gebruiken, Installeer het pakket vanaf PIP met:

pip install elasticsearch-synonym-toolkit

het Python pakket is geïnstalleerd als es_synonyms. Dit zal ook een linter tool installeren,es-synlint. Gebruik het met:

es-synlint 

Gebruik

in de meeste gevallen wilt u deze module gebruiken als hulp voor het laden van gevalideerde Synoniemen uit een bestand of 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')

het configureren van synoniem Tokenfilter met Elasticsearch DSL Py, is ook heel eenvoudig:

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 de onderliggende linter te gebruiken, kunt u de SynLint klasse importeren.

Development

  • Clone this repository.
  • pakketafhankelijkheden installeren via pip met: pip install -r requirements.txt.
  • om tests uit te voeren:
./panda test:all

Licentie

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.