如何在工作室中编写ravenDB查询,查找非空的所有字段

时间:2018-01-11 02:16:05

标签: lucene ravendb

我是lucene的新手,第1天新手。所以我已经阅读了关于lucene的教程,并花了一些时间试图找出如何在lucene中找到非null值。

所以我有一份名为Inspect的文件 该文件有两个我感兴趣的领域:Inspect and Direct。

{
    "Inspect": "Feather",
    "Direct": {} 
}

我想查找Inspect =“Feather”和Direct不为空的所有文档。 我也有兴趣找到Direct也是空的文件。

我在ravenDB工作室中这样做,所以我正在使用lucene。我尝试了一些像

这样的东西
Inspect: Feather
And NOT 
Direct: [[NULL_VALUE]]

然而,这似乎不起作用。任何建议或指示都会非常感激。

干杯

2 个答案:

答案 0 :(得分:1)

@stacka嗨!我也是RavenDB的新手,但我有一些想法可以帮助你。首先,使用' - '(减号)字符而不是NOT。这是一个惯例。其次,当任何属性未编入索引时,您可能会面临无法对db运行查询的问题。因此,您应该创建一个包含要查询的字段。希望,这会有所帮助。

答案 1 :(得分:1)

您需要运行如下查询:

Inspect: Feather AND NOT Direct.Count: 0

当您与空对象进行比较时,它失败,Direct不为空,但是.Count那里实际上是在计算对象中属性的数量,这似乎是什么你想要的。