首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >限制cts:搜索设置xml元素的数量

限制cts:搜索设置xml元素的数量
EN

Stack Overflow用户
提问于 2018-06-19 15:31:10
回答 1查看 42关注 0票数 0

我有一个cts:query,我想将cts:query限制为只搜索一些xml。如果不创建任何字段索引或修改我的cts:query,这是可能的,因为我的cts:query非常大。当我这么做的时候

代码语言:javascript
复制
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 :)

代码语言:javascript
复制
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"))
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-19 16:00:30

要回答核心问题,可以使用cts:元素查询将查询限制为特定元素。

您的查询有很大的优化空间。我不认为它会相对于大型数据集进行扩展。我强烈建议您拥有与之联系的任何MarkLogic资源,查看您想要做的事情,并评估您的方法。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50932085

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档