【问题标题】:Lucene.Net.Search.BooleanQuery+TooManyClauses: System errorLucene.Net.Search.BooleanQuery+TooManyClauses:系统错误
【发布时间】:2014-05-09 16:48:55
【问题描述】:

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

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

  • ?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)

【问题讨论】:

    标签: asp.net lucene lucene.net


    【解决方案1】:

    您的一个或多个通配符查询生成了过多的字词匹配。通配符查询通过枚举所有匹配项来重写,并创建一组与它们匹配的原始查询,并组合在 BooleanQuery 中。

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-11-15
      • 2014-11-29
      • 1970-01-01
      • 1970-01-01
      • 2018-02-20
      • 2011-04-29
      • 2011-05-31
      • 2017-08-21
      相关资源
      最近更新 更多