Marklogic 使用搜索API进行跨文档搜索和排序

Marklogic 使用搜索API进行跨文档搜索和排序,marklogic,Marklogic,使用搜索API,我必须在一个键元素上连接并搜索两个不同目录中的两个XML文档,并根据第二个XML中的一个元素对结果进行排序 我在XML中定义了搜索选项,并对要搜索的元素进行了约束,并使用排序运算符选项定义了排序顺序 ML版本是8(因此没有光学API),并且在摄取过程中没有一个选项去规范化XML,因为它和现有系统是一样的 示例文件A URI:/employee/123.xml <employee> <empid>123</empid> <f

使用搜索API,我必须在一个键元素上连接并搜索两个不同目录中的两个XML文档,并根据第二个XML中的一个元素对结果进行排序

我在XML中定义了搜索选项,并对要搜索的元素进行了约束,并使用排序运算符选项定义了排序顺序

ML版本是8(因此没有光学API),并且在摄取过程中没有一个选项去规范化XML,因为它和现有系统是一样的

示例文件A URI:/employee/123.xml

<employee>
    <empid>123</empid>
    <firstname>John</firstname>
    <lastname>Peter</lastname>
    <dept>sales</sales>
</employee>
我想实现一些类似于我们在下面的sql中实现的东西

select * from a join b on a.col1 = b.col1 order by b.col2

搜索API的粒度有点太粗,无法轻松完成这样的连接。我建议向下钻取一个级别,使用
cts:search
执行“鸟枪式”查询,这与关系数据库联接的工作原理非常相似

看看:

在XQuery代码中,获取一组与第一个查询匹配的ID,然后输入 将其设置为第二个查询作为约束。使用范围的能力 两端的索引可以提高工作效率


搜索API的粒度有点太粗,无法轻松完成这样的连接。我建议向下钻取一个级别,使用
cts:search
执行“鸟枪式”查询,这与关系数据库联接的工作原理非常相似

看看:

在XQuery代码中,获取一组与第一个查询匹配的ID,然后输入 将其设置为第二个查询作为约束。使用范围的能力 两端的索引可以提高工作效率


你能把代码再拼一下吗?您希望执行什么样的搜索,是否可以对齐sql以匹配相同的名称?我可能有一个建议,但这有助于澄清这一点。你能把代码再解释一下吗?您希望执行什么样的搜索,是否可以对齐sql以匹配相同的名称?我可能有一个建议,但它有助于澄清这一点。
search:search(searchgrmr,searchoptions,startidx,endidx);
select * from a join b on a.col1 = b.col1 order by b.col2