小编典典

MapperParsingException在使用Elasticsearch在Django干草堆中执行rebuild_index

elasticsearch

我使用java 1.7.0_95Django 1.8.4Python 3.4.0Django Rest Framework 3.1.3ElasticSearch 2.3.1pyelasticsearch 1.4Django Haystack 2.4.1

每次尝试进行elasticsearch时,我都遇到错误python manage.py rebuild_index。这是错误:

MapperParsingException [根映射定义具有不受支持的参数:[_boost:{null_value = 1.0,name = boost}]]
        在org.elasticsearch.index.mapper.DocumentMapperParser.checkNoRemainingFields(DocumentMapperParser.java:171)
        在org.elasticsearch.index.mapper.DocumentMapperParser.parse(DocumentMapperParser.java:159)
        在org.elasticsearch.index.mapper.DocumentMapperParser.parse(DocumentMapperParser.java:99)
        在org.elasticsearch.index.mapper.MapperService.parse(MapperService.java:498)
        在org.elasticsearch.cluster.metadata.MetaDataMappingService $ PutMappingExecutor.applyRequest(MetaDataMappingService.java:257)
        在org.elasticsearch.cluster.metadata.MetaDataMappingService $ PutMappingExecutor.execute(MetaDataMappingService.java:230)
        在org.elasticsearch.cluster.service.InternalClusterService.runTasksForExecutor(InternalClusterService.java:468)
        在org.elasticsearch.cluster.service.InternalClusterService $ UpdateTask.run(InternalClusterService.java:772)
        在org.elasticsearch.common.util.concurrent.PrioritizedEsThreadPoolExecutor $ 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

阅读 313

收藏
2020-06-22

共1个答案

小编典典

django-haystack删除> = 2中boost不再支持的参数存在一个相关问题ElasticSearch

在进行此更改之前,django- haystack使用的_boostElasticSearch后端映射中的参数。已对master分支进行了更改。您现在可以执行以下操作:

  • django-haystack直接从github 安装的开发版本:

    pip install -e git+https://github.com/toastdriven/django-haystack.git@master#egg=django-haystack
    
  • ElasticSearch在升级到第二版之前将其降级到最新的稳定版本1.7.3

2020-06-22