首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在Marklogic Server中创建数据库字段?

如何在Marklogic Server中创建数据库字段?
EN

Stack Overflow用户
提问于 2012-05-07 16:39:01
回答 2查看 416关注 0票数 3

我有以下xml结构

代码语言:javascript
运行
复制
 <patent-assignors>
        <patent-assignor>
          <name>VOLPENHEIN, ROBERT A.</name>
          <execution-date>
        <date>19841204</date>
          </execution-date>
        </patent-assignor>
 </patent-assignors>


    <patent-assignees>
        <patent-assignee>
          <name>PROCTER &amp; GAMBLE COMPANY, THE</name>
          <address-2>A CORP. OF  OHIO</address-2>
          <city>CINCINNATI</city>
          <state>OHIO</state>
        </patent-assignee>
   </patent-assignees>

我想在Marklogic Server中为patent-assignorpatent-assignee创建一个数据库字段,以便我可以使用cts:field-word-query。但是我想搜索专利转让人和专利受让人的名字(两者都包含相同的元素"name")。谁能告诉我如何将专利转让人字段映射到专利转让人名称,如何将专利受让人映射到专利受让人名称,以便对专利转让人和专利受让人的名称使用cts:field-word-query。我想要一个完全匹配的。

EN

回答 2

Stack Overflow用户

发布于 2012-05-07 17:04:35

这听起来并不像一个字段索引的用例。只需在元素'name‘上建立索引,两种情况都将在同一索引中进行索引。要进行区分,请使用适当父元素的element-query包装word-queryvalue-query

票数 2
EN

Stack Overflow用户

发布于 2012-05-08 03:19:47

我认为上面关于确保你理解可用选项的评论都是值得考虑的。如果我没理解错你的问题,MarkLogic可能只用“通用索引”就能回答你的搜索。

因为分配者和受让者都使用名为"name“的元素,所以查询两者的精确匹配实际上非常简单(精确匹配通常意味着使用value-query而不是word-query)

代码语言:javascript
运行
复制
cts:element-value-query(xs:QName("name"), "VOLPENHEIN, ROBERT A.")

但是,如果您的数据中存在除分配者和受让人之外的更多"name“元素,并且您需要将命中范围缩小到仅来自这些字段,而不是其他"name”字段,则可以使用element-queries来限制搜索(要使其具有良好的伸缩性,请确保数据库中的element-word-positionselement-value-positions设置为真)。

代码语言:javascript
运行
复制
cts:or-query((

    cts:element-query( xs:QName("patent-assignor"), 
                       cts:element-value-query(
                           xs:QName("name"), 
                           "VOLPENHEIN, ROBERT A.")),

    cts:element-query( xs:QName("patent-assignee"), 
                       cts:element-value-query(
                           xs:QName("name"), 
                           "VOLPENHEIN, ROBERT A."))
))

字段在隔离特定元素方面可能非常强大,特别是当有复杂的“包含”和“排除”逻辑需要遵循时。我认为,只需使用“通用索引”在查询时进行过滤,就很可能使事情变得更加灵活。

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

https://stackoverflow.com/questions/10479058

复制
相关文章

相似问题

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