Я разрабатываю простой инструмент nlp и используя elasticsearch-dsl как инструмент es с django.Конфигурирование конфигурации с использованием elasticsearch-dsl DocType
У меня будет два «DocType», Entity и Intent. Я создал свой собственный анализатор, который:
turkish_stop = token_filter('turkish_stop', type='stop', stopwords="_turkish_")
turkish_lowercase = token_filter('turkish_lowercase', type='lowercase', language="turkish")
turkish_stemmer = token_filter('turkish_stemmer', type='stemmer', language='turkish')
turkish_analyzer = analyzer('turkish_analyzer', tokenizer='whitespace', filter=['apostrophe', 'asciifolding',
turkish_lowercase, turkish_stop,
turkish_stemmer])
В каждом документе у меня есть пользовательское сопоставление, например;
class Entity(DocType):
entity_synonyms = String(analyzer=es.turkish_analyzer, include_in_all=True)
entity_key = String(index='not_analyzed', include_in_all=False)
class Meta:
index = es.ELASTICSEARCH_INDEX
doc_type = es.ELASTICSEARCH_ENTITY_DOCTYPE
Согласно документу http://elasticsearch-dsl.readthedocs.org/en/latest/persistence.html#persistence. Entity.init() создаст сопоставление для этого документа. Это действительно создает отображение на мои эс Однако, я не мог сделать то же самое с Intent, после Entity.init() Это дает ниже ошибок (только для объекта документа :(!):..
IllegalOperation: You cannot update analysis configuration on an open index, you need to close index nlp first.
Любой идея чтобы решить эту проблему? Я действительно хочу использовать Entity.init() и Intent.init(), если это возможно.
как я могу закрыть его с помощью elasticsearch-dsl? я не мог найти способ, я уже думал об этом. – avador
Я отредактировал ответ, PLS посмотреть. – ChintanShah25
Большое спасибо! он работает :) – avador