【问题标题】:Short-circuit evaluation in RavenDBRavenDB 中的短路评估
【发布时间】:2025-12-06 04:15:01
【问题描述】:
ravenDB 会自动短路查询吗?
如果没有,有没有办法做到这一点。
示例:
我使用全文搜索在我的数据库中搜索。但是这个搜索还有其他应该满足特定值的字段。那么在进行昂贵的全文搜索之前,我如何优先考虑其他字段。
Atm 我的查询看起来像这样:
condition1 AND condition2 AND FTS
我在 .Net 4.5 框架上使用 Raven 嵌入式客户端
【问题讨论】:
标签:
c#
full-text-search
ravendb
【解决方案1】:
没有。 Lucene 是底层的索引实现,有时会尽最大努力重新安排您的查询。但是没有可用的短路行为,也没有办法实现。
您对全文搜索“昂贵”的假设是错误的。由于要枚举的大量术语列表或加载位置数据的要求,短语搜索和有时通配符/前缀查询的执行成本可能会更高,但 RavenDB 中的所有查询实际上都是 Lucene 查询,因此 condition1 和 @987654322 @ 在您的查询中实际上是相同的。
HTH