MapperParsingException при выполнении rebuild_index в django-haystack сластиком поиска
Я использую java 1.7.0_95
, Django 1.8.4
, Python 3.4.0
, Django Rest Framework 3.1.3
, ElasticSearch 2.3.1
, pyelasticsearch 1.4
а также Django Haystack 2.4.1
Я испытываю ошибку в asticsearch каждый раз, когда я пытаюсь сделать python manage.py rebuild_index
, Это ошибка:
MapperParsingException [Корневое определение имеет неподдерживаемые параметры: [_boost: {null_value=1.0, name=boost}]] в org.elasticsearch.index.mapper.DocumentMapperParser.checkNoRemainingFields(DocumentMapperParser.java:171) в org.elma.DocumentMapperParser.parse(DocumentMapperParser.java:159) в org.elasticsearch.index.mapper.DocumentMapperParser.parse(DocumentMapperParser.java:99) в org.elasticsearch.index.mapper.MapperSerjjservice org.elasticsearch.cluster.metadata.MetaDataMappingService InternalClusterService.runTasksForExecutor(InternalClusterService.java:468) по адресу org.elasticsearch.cluster.service.InternalClusterService$UpdateTask.run(InternalClusterService.java:772) по адресу org.elasticsearch.common.util.concururioritizedEsThreadPoolExecutor$TieBreakingPrioritizedRunnable.runAndClean(PrioritizedEsThreadPoolExecutor.java:231) в org.elasticsearch.common.util.concurrent.PrioritizedEsThreadPoolExecutor$TieBreakingPrioritizedRunnable.run(PrioritizedEsThreadPoolExecutor.java:194) в java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) в java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) в java.lang.Thread.run(Thread.java:745)
Вот моя конфигурация:
HAYSTACK_CONNECTIONS = {
'default': {
'ENGINE': 'haystack.backends.elasticsearch_backend.ElasticsearchSearchEngine',
'URL': 'http://127.0.0.1:9200/',
'INDEX_NAME': 'haystack',
},
}
HAYSTACK_SIGNAL_PROCESSOR = 'haystack.signals.RealtimeSignalProcessor'
HAYSTACK_SEARCH_RESULTS_PER_PAGE = 40
1 ответ
Есть соответствующий django-haystack
вопрос, чтобы удалить boost
параметр, который больше не поддерживается в ElasticSearch
>= 2:
До этого изменения, django-haystack
использовал _boost
параметр в отображении для ElasticSearch
бэкенд. Изменение было внесено в основную ветку. Вы можете делать вещи в этот момент:
установить версию для разработки
django-haystack
прямо из github:pip install -e git+https://github.com/toastdriven/django-haystack.git@master#egg=django-haystack
упадок
ElasticSearch
до последней стабильной версии перед обновлением до 2-го, я думаю, что это1.7.3
Кроме того, вот соответствующая дискуссия: