如何在Marklogic中创建元素范围索引? [英] How to create element range index in Marklogic?

查看:68
本文介绍了如何在Marklogic中创建元素范围索引?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有以下xml:-

<?xml version="1.0" encoding="UTF-8"?>
<patent-assignment>
  <assignment-record>
    <correspondent>
      <name>NORTH AMERICA INTERNATIONAL PATENT OFFIC</name>
      <address-1>P.O. BOX 506</address-1>
      <address-2>MERRIFIELD, VA 22116</address-2>
    </correspondent>
   </assignment-record>
  <patent-assignors>
    <patent-assignor>
      <name>TSAI, YU-WEN</name>
      <execution-date>
    <date>20050331</date>
      </execution-date>
    </patent-assignor>
    <patent-assignor>
      <name>HUANG, CHENG-I</name>
      <execution-date>
    <date>20050331</date>
      </execution-date>
    </patent-assignor>
  </patent-assignors>
  <patent-assignees>
    <patent-assignee>
      <name>FARADAY TECHNOLOGY CORP.</name>
      <address-1>NO.10-2, LI-HSIN ROAD 1, SCIENCE-BASED INDUSTRIAL PARK</address-1>
      <city>HSIN-CHU CITY</city>
      <country-name>TAIWAN</country-name>
    </patent-assignee>
  </patent-assignees>
 </patent-assignment>

现在,我要在专利代理人专利代理人的名称上创建范围元素索引.但是在Marklogic中,没有选择为范围索引指定XPath.它只会将索引名称作为名称".那么在专利代理人专利代理人的名称上创建元素范围索引的正确方法是什么?

Now I want to create range element indexes on names of patent-Assignor and patent-Assignee. But in Marklogic there is no option to specify XPath for range indexes. It will just take the index name as "name". So what will be the proper way to create element range indexes on names of patent-Assignor and patent-Assignee ?

推荐答案

Puneet,为了仅获取一组名称,MarkLogic需要能够以某种方式区分这两组名称.最好的选择是在摄取期间更改名称元素的本地名称(当前为名称")或名称空间(当前为无).之后,您可以构建一个element-range-index并使用cts:element-values().例如:

Puneet, in order to get just one set of names, MarkLogic needs to be able to distinguish between the sets somehow. Your best bet is to change the name element's localname (currently "name") or namespace (currently none) during ingest. After doing so, you can build an element-range-index and use cts:element-values(). For instance:

<?xml version="1.0" encoding="UTF-8"?>
<patent-assignment>
  <assignment-record>
    <correspondent>
      <name>NORTH AMERICA INTERNATIONAL PATENT OFFIC</name>
      <address-1>P.O. BOX 506</address-1>
      <address-2>MERRIFIELD, VA 22116</address-2>
    </correspondent>
  </assignment-record>
  <patent-assignors xmlns="http://puneet/assignors">
    <patent-assignor>
      <name>TSAI, YU-WEN</name>
      <execution-date>
        <date>20050331</date>
      </execution-date>
    </patent-assignor>
    <patent-assignor>
      <name>HUANG, CHENG-I</name>
      <execution-date>
        <date>20050331</date>
      </execution-date>
    </patent-assignor>
  </patent-assignors>
  <patent-assignees xmlns="http://puneet/assignees">
    <patent-assignee>
      <name>FARADAY TECHNOLOGY CORP.</name>
      <address-1>NO.10-2, LI-HSIN ROAD 1, SCIENCE-BASED INDUSTRIAL PARK</address-1>
      <city>HSIN-CHU CITY</city>
      <country-name>TAIWAN</country-name>
    </patent-assignee>
  </patent-assignees>
</patent-assignment>

通过此XML,您可以在每个名称"元素上建立范围索引,然后调用

From this XML, you can build a range index on each of the "name" elements, then call

cts:element-values(fn:QName("http://puneet/assignees", "name"))

获取受让人的姓名.

这篇关于如何在Marklogic中创建元素范围索引?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆