当前位置: 首页 > news >正文

做网站优化如何写方案百度公司在哪里

做网站优化如何写方案,百度公司在哪里,网站嵌入地图,基础网站怎么做解决too_many_clauses: maxClauseCount is set to 1024 报错问题 问题场景报错信息问题分析解决1. 优化查询2. 增加maxClauseCount3. 改用其他查询类型修改后的查询示例 问题场景 查询语句:查询clcNo分类号包含分类O的所有文档 {"match_phrase_prefix":…

解决too_many_clauses: maxClauseCount is set to 1024 报错问题

    • 问题场景
    • 报错信息
    • 问题分析解决
      • 1. 优化查询
      • 2. 增加maxClauseCount
      • 3. 改用其他查询类型
      • 修改后的查询示例

问题场景

查询语句:查询clcNo分类号包含分类O的所有文档

{"match_phrase_prefix": {"clcNo": {"query": "O","analyzer": "standard","slop": 0,"max_expansions": 10000,"boost": 10.0}}
}

报错信息

{"took": 12,"responses": [{"error": {"root_cause": [{"type": "exception","reason": "Elasticsearch exception [type=search_phase_execution_exception, reason=all shards failed]","phase": "query","suppressed": [{"type": "exception","reason": "Elasticsearch exception [type=too_many_clauses, reason=too_many_clauses: maxClauseCount is set to 1024]"}]}],"type": "exception","reason": "Elasticsearch exception [type=search_phase_execution_exception, reason=all shards failed]","phase": "query","suppressed": [{"type": "exception","reason": "Elasticsearch exception [type=too_many_clauses, reason=too_many_clauses: maxClauseCount is set to 1024]"}]},"status": 500}]
}

问题分析解决

从报错信息来看,查询出现了too_many_clauses错误,这是因为使用的match_phrase_prefix或者in以及其他的查询生成的子句数量超过了Elasticsearch的默认限制(1024个子句)。我这里的错误是由于使用match_phrase_prefix可能扩展为大量词条的查询中超过了限制

可以尝试通过以下几种方式来解决这个问题:

  1. 优化查询:减少查询中使用的子句数量
  2. 增加maxClauseCount:增加Elasticsearch中允许的最大子句数量
  3. 改用其他查询类型:使用性能更好的查询类型

1. 优化查询

尝试减少子句数量,优化子句的查询数量,使得能减少到1024的个数限制

2. 增加maxClauseCount

如果确实需要大量的子句,可以增加Elasticsearch中的maxClauseCount限制。可以通过以下步骤来增加:

  • 修改Elasticsearch7.x配置文件 (elasticsearch.yml):

    indices.query.bool.max_clause_count: 2048
    
  • 或者通过Elasticsearch的API动态更新设置(这个我没尝试,而且可能只是临时的):

    curl -X PUT "localhost:9200/_settings" -H 'Content-Type: application/json' -d '{"index" : {"query" : {"bool" : {"max_clause_count" : 2048}}}
    }'
    

3. 改用其他查询类型

如果前两种方法不可行,考虑使用性能更好的查询类型,比如prefix查询。虽然prefix查询不如match_phrase_prefix查询精确,但它性能更好,并且不会产生过多的子句。

修改后的查询示例

这里是一个优化后的查询示例,将match_phrase_prefix替换为prefix查询,并减少inner_hits的数量:

  {"prefix": {"clcNo": {"value": "O","boost": 10.0}}}

以上修改包括:

  1. 使用prefix查询替代match_phrase_prefix查询。
  2. 降低inner_hits的数量,以减少子句数量。
http://www.ds6.com.cn/news/34321.html

相关文章:

  • 国家信用信息公示网查询官网seo全网营销公司
  • 网站怎么做图片滚动条seo优化排名营销
  • 网站建设需要会什么软件有哪些方面seo优化是什么意思
  • 深圳华强北赛格大厦关键词优化平台有哪些
  • 适合个人网站的名称优化推广网站怎么做
  • 店面门面设计南昌seo推广公司
  • wordpress使用密码夜狼seo
  • 分销系统合法吗网站运营seo实训总结
  • 亚马逊做网站发礼物换评价网址之家大全
  • 上不了国外网站 怎么做贸易精准的搜索引擎优化
  • 找人做网站昆明外包公司的人好跳槽吗
  • 汉口江岸区城市建设局网站宁波优化seo软件公司
  • 公众号网站怎么做东莞网站公司排名
  • 青岛 外语网站建设seo sem什么意思
  • seo 公司惠州seo计费管理
  • 怎样做静态网站哈尔滨百度关键词优化
  • 招聘网站是怎么做推广网络营销模式有哪些类型
  • 企业网站 实名认证免费发广告帖子的网站
  • 郑州网站开发公司名称大全crm管理系统
  • 网站设计软件培训宁波免费seo在线优化
  • 制作宣传片影视百度seo服务方案
  • 苏州代办营业执照的正规公司seo排名工具
  • 工作室网站建设方案模板网站seo策划方案实例
  • 如何制作app软件步骤安卓优化大师全部版本
  • 自做网站图片版权外贸网站营销推广
  • 商城网站设计费用学做电商需要多少钱
  • 辽宁自助网站建设公司全球疫情最新数据消息
  • 网站模型怎么做的站长工具是什么
  • 廊坊网站建百度知道首页网
  • 网站开发需不需要考研湖南seo技术培训