更新时间:2024-12-10 10:41:44
  • 问题描述:搜索提示索引失败,异常Query contains too many nested clauses; maxClauseCount is set to 1024,且当前语句在其它数据较少的环境可查询到结果。

  • 问题原因:单个索引的字段数过多,使用的查询语句又不规范,使底层对其搜索之后需要与所有字段进行匹配,导致超出了限制。
  • 解决方法:根据产品使用文档,优化搜索语句,若仍旧报错,请联系管理员解决
  • 例:如下所示,优化前未正确使用OR,搜索引擎将内容进行分词匹配字段,使搜索更加负载,导致在大数据量下搜索失败。优化后使用OR拆分词组,让每个词组正确匹配字段doc_operation.operator.name。

优化前:Body.doc_operation.operation:"download" AND !(Body.doc_operation.object.doc_lib.type:"user_doc_lib") AND !(Body.doc_operation.operator.name:"系统""匿名用户""doc-sync""knowledge-center""CloudHub")

优化后:Body.doc_operation.operation:"download" AND !(Body.doc_operation.object.doc_lib.type:"user_doc_lib") AND !(Body.doc_operation.operator.name:("系统" OR "匿名用户" OR "doc-sync" OR "knowledge-center" OR "CloudHub"))