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

Кроме того, вот соответствующая дискуссия:

Другие вопросы по тегам