Lucene.Net.Search.BooleanQuery + TooManyClauses:系统错误

时间:2014-05-09 16:48:56

标签: asp.net lucene lucene.net

我正在尝试使用以下参数搜索,我想知道为什么有些会导致抛出此异常。

只有少数参数不起作用。所有其他人都在工作。

  • ?q=220v+0+ph =>不工作
  • ?q=220v+1+ph =>不工作
  • ?q=220v+2+ph =>不工作
  • ?q=220v+3+ph =>不工作
  • ?q=220v+4+ph =>工作
  • ?q=220v+5+ph =>工作
  • ?q=220v+6+ph =>工作
  • ?q=220v+7+ph =>工作
  • ?q=220v+8+ph =>工作
  • ?q=220v+9+ph =>工作

我正在检查中心角色。它不仅适用于0,1,2和3的情况。

查询:{+(title:480v* content:480v title:3* content:3 title:ph* content:ph)

1 个答案:

答案 0 :(得分:1)

您的一个或多个通配符查询产生了太多的术语匹配。通过枚举所有匹配的术语来重写通配符查询,并创建一组与它们匹配的原始查询,并将其组合在BooleanQuery中。

例如,查询title:foo*可以在包含这些条款的索引中重写为title:foobar title:food title:foolish title:footpad

默认情况下,BooleanQuery最多允许1024个子句。例如,如果您在匹配title:0*的索引中有超过1024个不同的字词,则可能是您的问题。