lucene - 找出 maxClauseCount 设置为 1024 错误的原因

标签 lucene lucene.net

我有两组搜索索引。
TestIndex(在我们的测试环境中使用)和 ProdIndex(在 PRODUCTION 环境中使用)。
Lucene 搜索查询:+date:[20090410184806 TO 20091007184806] 适用于测试索引,但为 Prod 索引提供此错误消息。

"maxClauseCount is set to 1024"



如果我在执行搜索查询之前执行以下行,则不会出现此错误。
BooleanQuery.SetMaxClauseCount(Int16.MaxValue);
searcher.Search(myQuery, 收集器);

我在这里错过了什么吗?为什么在测试索引中没有出现这个错误?两个索引的架构是相同的。它们仅与记录/数据的数量不同。PROD 索引的记录数量(约 1300)比测试一(约 950)中的记录数量多.

最佳答案

范围查询本质上被转换为一个 bool 查询,每个可能的值都有一个子句,ORed在一起。

例如,查询 +price:[10 to 13] 转换为 bool 查询

+(price:10 price:11 price:12 price:13)

假设索引中存在所有值 10-13。

我想,你所有的 1300 个值都在你给出的范围内。所以,boolean查询有1300个子句,高于默认值1024。在测试索引中,没有达到1024的限制,因为只有950个值。

关于lucene - 找出 maxClauseCount 设置为 1024 错误的原因,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1534789/

相关文章:

sql-server - SQL Server 2008 全文搜索 (FTS) 与 Lucene.NET

java - 如何重置 SOLR 数据库?

java - 我可以对整个搜索应用程序使用单个 Lucene Analyzer 实例吗?

lucene - elasticsearch索引大小是否包含_source?

vb.net - 解析 Microsoft Office 和 PDF 文档的最佳方法是什么?

lucene - 如何在 Lucene 中存储多种不同类型的文档

c# - 使用 Lucene.NET 搜索过滤器

lucene - 将 Lucene HitCollector (2.x) 迁移到 Collector (3.x)

Lucene 实体提取

c# - Lucene.Net IndexReader 的 StructureMap 'conditional singleton'