如何通过XCC在MarkLogic中搜索与一系列条件匹配的节点(文档)
我是MarkLogic的新手,请帮我找到解决方案 我的XML数据被导入到MarkLogic中,我希望使用XCC查找具有特定范围条件的文档(节点)。 我在下面运行搜索命令,但得到一个错误。 请告诉我我做错了什么,并告诉我解决方法。 多谢各位如何通过XCC在MarkLogic中搜索与一系列条件匹配的节点(文档),marklogic,Marklogic,我是MarkLogic的新手,请帮我找到解决方案 我的XML数据被导入到MarkLogic中,我希望使用XCC查找具有特定范围条件的文档(节点)。 我在下面运行搜索命令,但得到一个错误。 请告诉我我做错了什么,并告诉我解决方法。 多谢各位 cts:search(fn:doc(), cts:and-query(cts:element-range-query(xs:QName("RequestDatetime"), ">=", "20141102170000"), cts:eleme
cts:search(fn:doc(),
cts:and-query(cts:element-range-query(xs:QName("RequestDatetime"), ">=", "20141102170000"),
cts:element-range-query(xs:QName("RequestDatetime"), "<=", "20141103170000"))
你好,wst和其他
我试图创建元素范围索引,但它似乎不起作用。
我的数据包含许多XML文件,格式如下。
现在,如果我想搜索RequestDatetime元素的范围,我必须做什么
多谢各位
<?xml version="1.0" encoding="UTF-8"?>
<Request>
<RequestDatetime>
20141102174108
</RequestDatetime>
<RemoteHostName>
xxxx.xxxx.xxxx.xxxx
</RemoteHostName>
<OrgRequest>
GET http://xxxx/ HTTP/1.1
</OrgRequest>
<Protocol>
xxxx
</Protocol>
<WebServer>
xxxxxxxxx
</WebServer>
<Request>
xxxxxxxxxxx
</Request>
<StatusCode>
xxxxxxx
</StatusCode>
<BytesSent>
Xxxxxxxxxx
</BytesSent>
<UserAgent>
</UserAgent>
<RemoteLogName>
</RemoteLogName>
<Cookie>
</Cookie>
<Referer>
</Referer>
<UserName>
</UserName>
</Request>
20141102174108
xxxx.xxxx.xxxx.xxxx
得到http://xxxx/ HTTP/1.1
xxxx
xxxxxxxxx
XXXXXXXXXX
xxxxxxx
XXXXXXXXX
传递给cts:和query
的cts:querys
是一个序列,因此它们需要包含在paren中(与fn:concat()
不同):
cts:search(fn:doc(),
cts:和查询((
cts:元素范围查询(xs:QName(“RequestDatetime”),“>=”,“20141102170000”),
cts:element range query(xs:QName(“RequestDatetime”),“谢谢wst。我跟随您的答案,但得到另一个错误。[1.0-ml]XDMP-ELEMRIDXNOTFOUND:cts:search(fn:doc(),cts:and query(cts:element range query(fn:QName(“,“RequestDatetime”),“>=”,“20141102170000”(“排序规则=),1),cts:element range query(fn:QName(“,“RequestDatetime”),”,“@manhtc要使用cts:element range query
您需要在数据库设置中配置范围索引(请参阅).FYI,xs:unsignedLong
对于您的范围索引可能是一种很好的类型。我知道了。我将再次尝试检查结果。非常感谢。我已经更新了问题内容,请查看您是否有时间。谢谢。@manhtc这不会影响答案。如果您仍然有问题,请接受此答案并发布新的问题跟踪新问题,包括您收到的任何错误。
<?xml version="1.0" encoding="UTF-8"?>
<Request>
<RequestDatetime>
20141102174108
</RequestDatetime>
<RemoteHostName>
xxxx.xxxx.xxxx.xxxx
</RemoteHostName>
<OrgRequest>
GET http://xxxx/ HTTP/1.1
</OrgRequest>
<Protocol>
xxxx
</Protocol>
<WebServer>
xxxxxxxxx
</WebServer>
<Request>
xxxxxxxxxxx
</Request>
<StatusCode>
xxxxxxx
</StatusCode>
<BytesSent>
Xxxxxxxxxx
</BytesSent>
<UserAgent>
</UserAgent>
<RemoteLogName>
</RemoteLogName>
<Cookie>
</Cookie>
<Referer>
</Referer>
<UserName>
</UserName>
</Request>
cts:search(fn:doc(),
cts:and-query((
cts:element-range-query(xs:QName("RequestDatetime"), ">=", "20141102170000"),
cts:element-range-query(xs:QName("RequestDatetime"), "<=", "20141103170000")
))
)