【发布时间】:2015-08-19 17:18:00
【问题描述】:
我正在尝试编写一个 lucene 查询来过滤 RavenDB 中的一些数据。此特定集合中的某些文档被分配了一个序列号,并且有效范围不是连续的(例如,一个范围可以从 100 到 200,另一个范围可以从 1000 到 1400)。我想使用 Raven Studio(v2.5,Silverlight 客户端)查询 RavenDB,以检索所有值超出这些用户定义范围的文档。
这是过度简化的文档结构:
{
ExternalId: something/1,
SequentialNumber: 12345
}
为了测试,我添加了 3500 个文档,所有这些文档都有一个 SequentialNumber,它位于以下两个范围之一内:123-312 和 9000-18000,除了一个具有 100000123 的文档。 ExternalId 字段是对父文档的引用,对于此测试,所有文档的字段都设置为 something/1。这是我想出的 Lucene 查询:
ExternalId: something/1 AND NOT
(SequentialNumber: [123 TO 321] OR SequentialNumber: [9000 TO 18000])
在 RavenDB 的 Studio 中运行查询会返回 SequentialNumber 不在 123-321 范围内的所有文档。我希望它只返回具有100000123 作为SequentialNumber 的文档。我一直在尝试向谷歌寻求帮助,但到目前为止,我还没有找到任何可以引导我走向正确方向的东西。
我做错了什么?
【问题讨论】:
标签: lucene ravendb lucene.net ravendb-studio