当前位置: 首页 > 知识库问答 >
问题:

Marklogic是否能够仅在特定集合中的文档上创建范围索引

葛泳
2023-03-14

MarkLogic版本-9

考虑一下,我有3个藏品,里面有大量的文档。

Collection 1:订单文档计数-10M元素-orderNumber

集合2:库存文档计数-100M

收款3:付款单据计数-50M

例如:我们想为collection1(Order)中的所有文档的元素“orderNumber”创建一个范围索引。这不是一次性的,我们的代码需要根据用户操作在文档中的不同元素上创建动态范围索引。

对于我们试图为其创建范围索引的元素,我们已经知道哪些集合文档具有该元素。如果该元素存在于其他收集文档中,我们也对其不感兴趣。

因此,我们可以在特定集合中创建可用元素的范围索引,而不是重新索引MarkLogic中可用的所有文档(10M100M50 M)吗?

由于此范围索引创建是由UI中的用户运营触发的,因此我们不希望DB在尝试索引DB中的所有可用文档时大幅减慢速度。

共有2个答案

江永安
2023-03-14

从应用程序的角度来看,有两种方法可以将其切片:(1)正如Geert所说,看看您是否可以使用路径范围索引并对数据进行建模以仅选择您想要的文档。(2)索引所有内容,但通过集合查询限制该索引的使用。

轩辕天佑
2023-03-14

不,MarkLogic索引始终适用于它们所属的整个数据库。

但是,您可以使用路径范围索引。只有当路径足够具体时,索引器才应该能够定位订单文档,从而节省(重新)索引时间和内存。

嗯!

 类似资料:
  • 我正在尝试仅对特定索引禁用动态映射创建,而不是对所有索引禁用。出于某种原因,我无法将默认映射设置为“dynamic”:“false”。所以,这里有两个选项,我可以看到: 指定属性的索引。制图员。“动态”文件弹性搜索。yml 第一个选项只能接受值:true、false和strict。因此,无法指定特定索引的子集(就像我们使用属性“action.auto_create_index”按模式所做的那样)h

  • 我在data hub/src/main/ml config/database fields/final-database.xml中添加了几个元素范围索引 并运行./gradlew mlDeploy-PenvironmentName=local--info 它成功运行,但没有创建添加到xml中的元素范围索引。 MarkLogic版本10.0.3数据中心版本5.1 是否不支持此xml配置? 我怎样才能

  • 问题内容: 因此,在Java中,每当给出索引范围时,上限几乎总是排他的。 来自: 返回一个新字符串,该字符串是该字符串的子字符串。子字符串从指定的字符串开始,并扩展到索引的字符 来自: -要复制的范围的初始索引(包括两端) - 要复制的范围的最终索引,包括高端。 来自: -要设置的第一位的索引。 -要设置的最后一位之后的索引。 如您所见,它看起来确实像Java试图使它成为一致的约定,即上限是互斥的

  • 我是第一次使用MongoDB,我对NoSQL数据库有一些经验。 我想在文档中创建一个集合。我无法使用MongoDB复制这种行为,因为我在文档中找不到代码。请问这种行为可能吗? 提前谢谢。

  • 问题内容: 我有一个嵌套的对象映射,示例数据: 这是我的过滤汇总,可返回与过滤条件匹配的文档(即,大陆应为“亚洲”,国家应为“印度”): 这是结果(副本仅将聚合粘贴到此处): 我的意图是仅从中获得“胜利” 。过滤器可以按预期工作,但是我只需要将聚合范围缩小到; 本质上是Filter聚合返回的文档的作用域的另一个级别,因此叶聚合计数为5而不是6。 问题答案: 尝试以下聚合:

  • 我需要创建一个fiRecovery文档,它也有一个集合,理想情况下是在单个写入操作中。 我在文档中没有看到类似的内容,因此,如果失败了,那么关于获取创建的文档id然后将多个文档添加到集合中有什么提示吗? 编辑:我正在用typescript/js开发