微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

例如< product_code> PC001< / product_code>将要返回为< product_code code ='PC001'>小部件< / product_code&gt ;.它并不总是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

使用范围索引,查找将全部发生在相同的索引中,无论您如何块文档.所以除非你需要使用cts:搜索产品代码来检索实际的元素,那么你如何块文件也不重要.

原文地址:https://www.jb51.cc/xml/292310.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。