gpt4 book ai didi

xml - 在 Marklogic 数据库中存储名称/值对的最有效方法是什么

转载 作者:数据小太阳 更新时间:2023-10-29 01:42:12 25 4
gpt4 key购买 nike

我的应用程序经常需要使用查找来修饰它所服务的文档中的值,以获取各种代码的人类可读形式。

例如<product_code>PC001</product_code>想要返回为 <product_code code='PC001'>Widgets</product_code> .它并不总是 product_code;有几种不同类型的代码需要类似的行为(其中一些只有几十个示例,一些有几千个。)

我想知道在数据库中存储该数据的最有效方法是什么?我可以想到两种可能性:

1) 每种代码类型一个文档,包含许多元素:

<product-codes>
<product-code code = "PC001">Widgets</product-code>
<product-code code = "PC002">Wodgets</product-code>
<product-code code = "PC003">Wudgets</product-code>
</product-codes>

2) 每个代码一个文档,每个包含一个 <product-code>元素如上。

(显然,这两个选项都包含合理的索引)

其中任何一个明显比另一个快吗?还有其他更好的选择吗?

我的感觉是,通常每个文档保留一个“东西”会更好,因为它在概念上稍微清晰一些,而且(我理解)更适合 ML 的索引,但在这种情况下,这似乎会导致大量的非常小的文件。这是我应该担心的事情吗?

最佳答案

任何需要独立搜索的都应该是自己的文档或片段。但是,如果您只是进行查找,那么元素属性范围索引在返回值时应该非常快:

element-attribute-range-query(xs:QName('product-code'), xs:QName('code'), '=', 'PC001') 
=>
Widgets

使用范围索引,无论您如何对文档进行分块,查找都将从同一索引发生。因此,除非您需要在 product-code 上使用 cts:search 来检索实际元素,否则如何对文档进行分块并不重要。

关于xml - 在 Marklogic 数据库中存储名称/值对的最有效方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15415895/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com