Marklogic 限制cts:搜索以设置xml元素的数量
我有一个Marklogic 限制cts:搜索以设置xml元素的数量,marklogic,marklogic-9,Marklogic,Marklogic 9,我有一个cts:query,我想限制我的cts:query只搜索一些xml元素。由于我的cts:query非常大,这是否可能在不创建任何字段索引或修改我的cts:query的情况下实现。。当我这么做的时候 cts:search(( //es:raw/wos_dps:REC/wos_dps:static_data/wos_dps:summary/wos_dps:titles/wos_dps:title, //es:raw/wos_dps:REC/wos_dps:st
cts:query
,我想限制我的cts:query
只搜索一些xml元素。由于我的cts:query
非常大,这是否可能在不创建任何字段索引或修改我的cts:query
的情况下实现。。当我这么做的时候
cts:search((
//es:raw/wos_dps:REC/wos_dps:static_data/wos_dps:summary/wos_dps:titles/wos_dps:title,
//es:raw/wos_dps:REC/wos_dps:static_data/ wos_dps:fullrecord_metadata/ wos_dps:abstracts/ wos_dps:abstract
)
,
$q,
('unfiltered'))[1 to 10]
其中$q
是我的cts:query
,如下例所示。我知道这个表达是无法理解的。。如何做到这一点?。。为了完成我的代码,下面是我的cts:query
,下面只是一个示例,它要大得多cts:query
:)
要回答核心问题,可以使用将查询限制为特定元素
您的查询有很大的优化空间。我不期望它能够针对大型数据集进行扩展。我强烈建议您拥有任何与您联系的MarkLogic资源,看看您正在尝试做什么并评估您的方法。要回答您的核心问题,您可以使用将查询限制为特定元素
您的查询有很大的优化空间。我不期望它能够针对大型数据集进行扩展。我强烈建议您有任何与您联系的MarkLogic资源,看看您正在尝试做什么并评估您的方法。cts:element query的问题就像我有20个需要限制的元素一样。。我同意需要对查询进行优化,但总体而言,我必须考虑影响所有元素的因素,我认为这并不理想,我可以选择
field
route,但再次选择cts:near query
willfail@Ravi您可以将多个元素名称传递到cts:element-query的第一个参数中。cts:element-query
的问题就像我有20个元素需要限制一样。。我同意需要对查询进行优化,但总体而言,我必须考虑影响所有元素的因素,我认为这并不理想,我可以选择字段
路线,但同样cts:near query
将fail@Ravi您可以将多个元素名称传递到cts:element query的第一个参数中。
cts:and-query(
(
cts:or-query(
(
cts:near-query(
(
cts:or-query((
cts:word-query("Guideline", ("case-insensitive", "punctuation-insensitive", "whitespace-insensitive", "wildcarded")),
cts:word-query("guidelines", ("case-insensitive", "punctuation-insensitive", "whitespace-insensitive", "wildcarded"))
)
)
,
cts:or-query((
cts:word-query("clinical", ("case-insensitive", "punctuation-insensitive", "whitespace-insensitive", "wildcarded")),
cts:word-query("practice", ("case-insensitive", "punctuation-insensitive", "whitespace-insensitive", "wildcarded")),
cts:word-query("adherence", ("case-insensitive", "punctuation-insensitive", "whitespace-insensitive", "wildcarded"))
)
)
)
,
4,
('unordered'))
,
cts:near-query((
cts:word-query("phase", ("case-insensitive", "wildcarded")),
cts:or-query((
cts:word-query("0", ("case-insensitive", "wildcarded")),
cts:word-query("1", ("case-insensitive", "wildcarded")),
cts:word-query("2", ("case-insensitive", "wildcarded")),
cts:word-query("3", ("case-insensitive", "wildcarded")),
cts:word-query("4", ("case-insensitive", "wildcarded")),
cts:word-query("i", ("case-insensitive", "wildcarded")),
cts:word-query("ii", ("case-insensitive", "wildcarded")),
cts:word-query("iii", ("case-insensitive", "wildcarded")),
cts:word-query("iv", ("case-insensitive", "wildcarded"))
)))
,
0,
('unordered')),
cts:near-query((
cts:or-query((
cts:word-query("phase2*", ("case-insensitive", "wildcarded")),
cts:word-query("phase1*", ("case-insensitive", "wildcarded")),
cts:word-query("phase0*", ("case-insensitive", "wildcarded")),
cts:word-query("phase4*", ("case-insensitive", "wildcarded")),
cts:word-query("phase3*", ("case-insensitive", "wildcarded")),
cts:word-query("phasei*", ("case-insensitive", "wildcarded")),
cts:word-query("phaseii*", ("case-insensitive", "wildcarded")),
cts:word-query("phaseiii*", ("case-insensitive", "wildcarded")),
cts:word-query("phaseiv*", ("case-insensitive", "wildcarded"))
)),
cts:or-query((
cts:word-query("trail*", ("case-insensitive", "wildcarded")),
cts:word-query("study", ("case-insensitive", "wildcarded")),
cts:word-query("studies*", ("case-insensitive", "wildcarded"))
))
),
1,
('unordered')),
)
),
cts:collection-query(("http://xxxx/entity/wos/article")),
cts:element-attribute-value-query((xs:QName(xs:QName("wos_dps:pub_info"))),
(xs:QName("wos_dps:pubyear")),
"2017")
)
,
("unordered"))