mapperparsing在djanghaystack中使用elasticsearch执行rebuild_index时出现异常

2024-07-02 12:52:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我用的是java 1.7.0_95Django 1.8.4Python 3.4.0Django Rest Framework 3.1.3ElasticSearch 2.3.1pyelasticsearch 1.4和{}

每次尝试执行python manage.py rebuild_index时,elasticsearch都会遇到一个错误。这是错误:

MapperParsingException[Root mapping definition has unsupported parameters:  [_boost : {null_value=1.0, name=boost}]]
        at org.elasticsearch.index.mapper.DocumentMapperParser.checkNoRemainingFields(DocumentMapperParser.java:171)
        at org.elasticsearch.index.mapper.DocumentMapperParser.parse(DocumentMapperParser.java:159)
        at org.elasticsearch.index.mapper.DocumentMapperParser.parse(DocumentMapperParser.java:99)
        at org.elasticsearch.index.mapper.MapperService.parse(MapperService.java:498)
        at org.elasticsearch.cluster.metadata.MetaDataMappingService$PutMappingExecutor.applyRequest(MetaDataMappingService.java:257)
        at org.elasticsearch.cluster.metadata.MetaDataMappingService$PutMappingExecutor.execute(MetaDataMappingService.java:230)
        at org.elasticsearch.cluster.service.InternalClusterService.runTasksForExecutor(InternalClusterService.java:468)
        at org.elasticsearch.cluster.service.InternalClusterService$UpdateTask.run(InternalClusterService.java:772)
        at org.elasticsearch.common.util.concurrent.PrioritizedEsThreadPoolExecutor$TieBreakingPrioritizedRunnable.runAndClean(PrioritizedEsThreadPoolExecutor.java:231)
        at org.elasticsearch.common.util.concurrent.PrioritizedEsThreadPoolExecutor$TieBreakingPrioritizedRunnable.run(PrioritizedEsThreadPoolExecutor.java:194)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:745)

以下是我的配置:

^{pr2}$

Tags: djangorunorgindexparseutiljavaelasticsearch
1条回答
网友
1楼 · 发布于 2024-07-02 12:52:39

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

在此更改之前,django-haystackElasticSearch后端的映射中使用了_boost参数。对主分支进行了更改。此时此刻你可以做一些事情:

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

    pip install -e git+https://github.com/toastdriven/django-haystack.git@master#egg=django-haystack
    
  • ElasticSearch降级到最新的稳定版本,然后再升级到第二个,我认为是^{}

另外,以下是相关讨论:

相关问题 更多 >