我正在尝试仅为expireDate属性设置索引范围。我写了以下索引。这是对的吗?
如果我使automatic = false,我无法查询。但是,我担心的是因为automatic = true,所有级别的所有属性都被编入索引,这是我不想要的。
{
"indexingMode": "consistent",
"automatic": true,
"includedPaths": [
{
"path": "/ExpireDate/?",
"indexes": [
{
"kind": "Range",
"dataType": "Number",
"precision": -1
},
{
"kind": "Hash",
"dataType": "String",
"precision": 3
}
]
}
],
"excludedPaths": [
{
"path": "/"
}
]
}
答案 0 :(得分:4)
如果ExpireDate是一个数字,那么这是正确的。如果它表示为字符串,例如ISO-8601,你想在字符串和数字上设置Range的索引,就像下面的存根一样。请注意,这是配置
{
"path": "/ExpireDate/?",
"indexes": [
{
"kind": "Range",
"dataType": "Number",
"precision": -1
},
{
"kind": "Range",
"dataType": "String",
"precision": -1
}
]
}
在大多数情况下,应将自动设置为true。它表示是否应该选择文档来默认索引。如果这是错误的,则需要在文档写入时明确传入IndexingDirective.Include。如果将其设置为true,则需要传入IndexingDirective.Exclude以显式排除文档。只有上面规则所涵盖的路径(默认所有内容,在本例中为ExpireDate)将被索引,而不管自动的真/假。