当前位置: 首页 > 知识库问答 >
问题:

用elasticsearch在django-haystack中执行rebuild_index的MapperParsingException

韩嘉祯
2023-03-14

我使用的是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

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)

下面是我的配置:

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个答案

谷梁宜
2023-03-14

存在一个相关的Django-Haystack问题来删除Boost参数,该参数在ElasticSearch>=2中不再支持:

  • 删除现在不支持的boost

在此更改之前,Django-Haystack在映射ElasticSearch后端时使用_boost参数。对主分支进行了更改。你可以在这一刻做事情:

pip install -e git+https://github.com/toastdriven/django-haystack.git@master#egg=django-haystack

还有,这里是相关的讨论:

  • Django haystack LocationField在ElasticSearch中创建为字符串而不是geo_point
 类似资料:
  • 问题内容: 我使用,,,,,和 每次尝试进行elasticsearch时,我都遇到错误。这是错误: 这是我的配置: 问题答案: 删除> = 2中不再支持的参数存在一个相关问题: 删除目前不支持的增强 在进行此更改之前,使用的是后端映射中的参数。已对master分支进行了更改。您现在可以执行以下操作: 直接从github 安装的开发版本: 在升级到第二版之前将其降级到最新的稳定版本

  • 我正试图在本地开发环境(运行Ubuntu 12.04的vagrant VM)上设置ElasticSearch/Haystack,但我无法完成重新编制索引的过程。 ES正在运行,我已经创建了一个新的索引(我使用elasticsearch ch-head在浏览器中查看索引状态)。我可以创建一个新的索引,并查询它,所以我知道ES正在工作。 我的问题是Haystack命令: 看看这个日志记录——似乎干草堆

  • 问题内容: 我想知道Django-Haystack + elasticsearch + pyelasticsearch / elasticsearch- py的最佳组合是什么。我已经在Ubuntu 12.04机器上使用Haystack 2.1.1-dev + elasticsearch 1.1.1 + elasticsearch-py 1.0部署了安装程序。我尝试将Haystack 2.1.0(最

  • 我正在开发一个开放的博客网站,对于它的搜索功能,我正在使用django haystack的弹性搜索,但问题是每次发布博客文章后,我都需要运行命令-,如何自动生成更新索引?你能告诉我,如果该网站有数百万的帖子,那么,这是一个好主意,或者它会崩溃我的网站,因为我需要刷新索引每次,我是新手请告诉我正确的方法为重搜索。instagram和其他社交网站使用什么搜索技术。

  • django-haystack 为Django提供了模块化的搜索,它提供一个统一的、友好的API,允许您插入不同的搜索后端(如Solr,Elasticsearch,Whoosh,Xapian,等等)而不需要修改代码。

  • 问题内容: 干草堆文档中的默认搜索表单上已显示“未找到结果”。当我尝试在searchqueryset上调用count时,出现此错误。 问题答案: 尚不支持Elasticsearch版本5(http://django- haystack.readthedocs.io/en/v2.5.1/installing_search_engines.html#elasticsearch ): Haystack当