booleanClauses属性的意义

貌似是查询条件有几个逻辑判断而不是参数长度。

如下面两种情况

a:1 OR b:2 AND C:3那么此时booleanClauses=3

id(1 2 3 4 5) 那么此时booleanClauses=5

当使用slor查询时,有时候我们的查询条件会非常多,由于solr的booleanquery默认设置的条件数为1024,所以超过这个限制的

会报异常too many boolean clauses Exception,这样设置的原因是为了限制过多条件查询,降低查询的性能,但有时候又必须这样查,或分析数据用, 所以可以临时改变下,修改方法:

1、  在solr的实例中有一个conf的文件solrconfig.xml文件中 在<query>的标签下有一个<maxBooleanClauses>1024</maxBooleanClauses>,单纯只修改这个1024,重启solr后并不会生效。

原因:

maxBooleanClauses属性是全局的lucene配置,当存在多个实例core时,只修改其中一个,当solr在加载的时候,只会取最后一个加载的core设置的maxBooleanClauses值。所以如果你的solr里面存在多个core,那么必须给每一个core都配置maxBooleanClauses。

注:在solr最新版本中solrhome->solr.xml,全局设置中需要设置booleanClauses

<int name="maxBooleanClauses">${solr.max.booleanClauses:1024}</int>

这样全局变量设置与单个core设置应该就可以了,不需要全部core都修改了。

2、  solr配置了最大请求参数之后post请求大小不够的话,还需要调整tomcat的post请求限制。

即修改tomcat的conf/server.xml文件

<Connector connectionTimeout="20000" port="8088" protocol="HTTP/1.1" redirectPort="8443" maxPostSize="-1" maxHttpHeaderSize ="102400"/>

maxPostSize与maxHttpHeaderSize的属性

3、  代码把请求模式改成post模式,如

QueryResponse qr = solr.query(this.getSolrQuery(ids));

改成

QueryResponse qr = solr.query(this.getSolrQuery(ids),METHOD.POST);

解决solr 请求参数过长报错too many boolean clauses Exception的更多相关文章

  1. solr 请求参数过长报错,Solr配置maxBooleanClauses属性不生效原因分析

    博客分类:   上次已经写过一篇关于solr中,查询条件过多的异常的文章,这次在总结扩展一下: 有时候我们的查询条件会非常多,由于solr的booleanquery默认设置的条件数为1024,所以超过 ...

  2. HandlerMethodArgumentResolver完美解决 springmvc注入参数多传报错

    作为一个后端开发,能友好兼容前端参数传入错误等问题,在前端发布不小心多传一个参数导致系统错误的问题,一个广告系统是零容忍的,所以为了不犯错误,后端接收参数必须摒弃spring 的自动注入@Reques ...

  3. Ajax请求参数较长导致请求失败

    Ajax请求参数比较长,第5行参数大概1100个字符吧,是接口的请求报文. $.ajax({ type:"POST", url:"${ctx}/test.action?m ...

  4. 解决使用redis作为session缓存 报错 Error: no such key 的问题

    spring的issue https://github.com/spring-projects/spring-session/issues/954 原答案是 Updated my codes to 2 ...

  5. SpringMVC 完美解决PUT请求参数绑定问题(普通表单和文件表单)

    一 解决方案 修改web.xml配置文件 将下面配置拷贝进去(在原有的web-app节点里面配置 其它配置不变) <!-- 处理PUT提交参数(只对基础表单生效) --> <filt ...

  6. 解决Sublime包管理package control 报错 There are no packages available for installation

    解决Sublime包管理package control 报错 There are no packages available for installation 真的是哔了狗了,要不是我机智的重新安装了 ...

  7. idea中 参数没有描述报错 @param XX tag description is missing错误,去除黄色警告

    最近在使用idea开发工具,在方法备注中参数没有描述报错就会报一些黄色警告: @param XX tag description is missing,下面展示去除黄色警告的方法 File--sett ...

  8. 解决Maven项目中的无故报错的方法

    解决Eclipse+maven中的无故报错 错误: One or more constraints have not been satisfied. Deployment Assembly跟java版 ...

  9. 报错:Failed on local exception: Host Details : local host is: "master/192.168.52.26"; dest

    报错现象 Failed on local exception: com.google.protobuf.InvalidProtocolBufferException: Protocol message ...

随机推荐

  1. Reactor的NIO线程模型

    1.Reactor单线程模型 传统的javaNIO通信的线程模型.该线程模型仅有一个I/O线程处理所有的I/O操作,如下图:   单线程模型的Reactor 所有的客户端都连接到一个I/O线程负责的A ...

  2. SqlServer数据库分区分表实例分享(有详细代码和解释)

    数据库单表数据量太大可能会导致数据库的查询速度大大下降(感觉都是千万级以上的数据表了),可以采取分区分表将大表分为小表解决(当然这只是其中一种方法),比如数据按月.按年分表,最后可以使用视图将小表重新 ...

  3. EF Core 简单使用介绍

    EF Core 是一个ORM(对象关系映射),它使 .NET 开发人员可以使用 .NET对象操作数据库,避免了像ADO.NET访问数据库的代码,开发者只需要编写对象即可. EF Core 支持多种数据 ...

  4. 基于DockerSwarm 部署InfluxDB并使用JAVA操作

    Docker中部署InfluxDB 1.运行容器 $ docker run --rm \ -e INFLUXDB_DB=db0 -e INFLUXDB_ADMIN_ENABLED=true \ -e ...

  5. mac pro使用2K(2056*1440)设置屏幕解决方法

    参考: https://www.jianshu.com/p/40cee8ab3d0f https://www.zhihu.com/question/35300978 在点击ok后,发现并不能保存.或者 ...

  6. 微服务架构 ------ 插曲 linux LVM磁盘扩容

    1.LVM的基本概念 物理卷(PV):可以在上面建立卷组的媒介,可以是硬盘分区,也可以是硬盘本身或者回环文件,物理卷包括一个特殊的header,其余部分被切割成一块块物理区域. 卷组(VG):将一组物 ...

  7. CreateProcess执行一个控制台程序,隐藏窗口

    STARTUPINFO   StartupInfo;//创建进程所需的信息结构变量 PROCESS_INFORMATION   ProcessInfo; GetStartupInfo(&Sta ...

  8. Spark GraphX图计算核心算子实战【AggreagteMessage】

    一.简介 参考博客:https://www.cnblogs.com/yszd/p/10186556.html 二.代码实现 package graphx import org.apache.log4j ...

  9. 分布式系统原理之cap理论

    1.1 CAP理论的含义 Cap理论表示在分布式系统中一致性(C).可用性(A)和分区容错性(P)最多只能同时满足两个.  一致性:客户端更新数据成功后,在任意时刻,在系统任意对外提供服务的节点,读取 ...

  10. IDEA 设置(中文乱码、svn、热部署、ideolog 、Jrebel )

    目录 console中文乱码 idea 多个工程分别设置svn idea svn忽略版本控制 idea svn客户端 ideolog 插件配置 idea 热部署 Jrebel 插件激活和使用 # I ...