agora-team / elasticsearch-sinônimos

Elasticsearch Sinônimos

Status de CompilaçãoPyPI Versão

Este repositório contém uma curadoria conjunto de dados de sinônimos em Solr Formato. Estes sinónimos podem ser usados para a configuração do filtro de sinônimo de Elasticsearch.Ferramentas auxiliares adicionais neste repositório:

  • synlint: ferramenta de linha de comandos para ligar e validar os ficheiros de sinónimo.
  • synonyms.sublime-syntax: Ficheiro de realce de sintaxe para Texto Sublime 3.

se estiver a utilizar Elasticssearch com Django, poderá achar dj-elasticsearch-flex útil.Porquê?Ao tentar configurar sinónimos na pesquisa elastica, descobri que os documentos para ela estão surpreendentemente dispersos.Os documentos que estão disponíveis também não fazem muita justiça e perdem muitos casos de canto.

por exemplo, um mapeamento Solr incorreto: hello, world, seria felizmente adicionado na configuração do Índice.No entanto, assim que você tentasse reabrir o índice, você teria um malform_input_exception (tópico de discussão).

este repositório resolve tais problemas com uma ferramenta de linter que pode ser usada para validar os sinônimos de antemão.

Datasets

the synonym files in data/ can be used directly in elasticsearch configuration.Estão actualmente disponíveis Conjuntos de dados

:

  • be-ae: Inglês Britânico e Inglês Americano ortografia. De AVKO.org.
  • medical-terms: a Synonym file with several Medical terminologies, abbreviations and resolution.

Instalação

Se você deseja usar o synlint ferramenta, instale o pacote do PIP usando:

pip install elasticsearch-synonym-toolkit

O Pacote Python é instalado como es_synonyms. Isto também irá instalar uma ferramenta linter,es-synlint. Usá-lo com:

es-synlint 

o Uso de

Na maioria dos casos, você iria querer usar este módulo como um auxiliar para carregar validado sinônimos de um arquivo ou uma 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')

Configurando Sinônimo Tokenfilter com Elasticsearch DSL Py, é muito fácil, muito:

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

para usar o linter subjacente, você pode importar SynLint classe.

desenvolvimento

  • Clone este repositório.
  • instalar dependências de pacotes via pip com: pip install -r requirements.txt.
  • para realização de testes:
./panda test:all

licença

Deixe uma resposta

O seu endereço de email não será publicado.