gpt4 book ai didi

java - MarkLogic 8 Java API - 以编程方式添加元素范围索引

转载 作者:行者123 更新时间:2023-11-30 03:33:17 24 4
gpt4 key购买 nike

我正在通过 ML Java API 中的 RawQueryByExampleDefinition 使用示例搜索查询。在我们升级到版本 8 之前,传入如下所示的动态选项(重点关注元素名称):

<options xmlns="http://marklogic.com/appservices/search">
<sort-order collation="http://marklogic.com/collation/en/S1/EO/CU/MO" type="xs:string" direction="ascending">
<element ns="" name="dynamicElement"/>
</sort-order>
</options>

以上适用于没有配置任何元素范围索引的 ML 7。但是,对于 ML 8,这给了我一个错误,在深入研究原因后,似乎现在需要创建元素范围索引,否则 ML Java API 将抛出错误。

我的问题是从我的 API 摄取到 ML 中的元素并不是真正预先确定的或无模式的,这意味着它们(客户端)可以插入任何 JSON 格式。有没有办法动态或以编程方式创建元素范围索引,以便系统首先检查传入的“无模式”数据,并根据传入的 JSON 结构或元素动态添加元素范围索引?

最佳答案

这对我来说听起来像是一个错误修复。您应该始终为任何大规模查询排序选项提供适当的范围索引。如果规模不重要,请使用 Java 进行排序。

您可以使用管理 API 创建范围索引:https://docs.marklogic.com/admin:database-add-range-element-index及相关功能。您可以根据需要创建任意数量的范围索引。

公开一个 REST API 可能会起作用,该 API 允许用户按需创建范围索引。但是,在您的情况下,我首先会进行一些仔细的分析,因为这可能会导致磁盘和内存利用率的无限增长。您可能还必须考虑名称相同但语法含义不同的元素之间可能存在的冲突、调用不同的排序规则等。这就是 XML 命名空间的用途:ns1:titlens2:标题。但 JSON 没有命名空间。

关于java - MarkLogic 8 Java API - 以编程方式添加元素范围索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28525913/

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