【问题标题】:range index on mixed content node in exist db存在数据库中混合内容节点的范围索引
【发布时间】:2016-07-20 20:42:27
【问题描述】:

我的 xml 文件具有结构

<root>
    <compound>abc<parts>a b c</parts></compound>
    <compound>xyz<parts>x y z</parts></compound>
</root>

我在

上创建了一个范围索引
<range>
    <create qname="compound" type="xs:string"/>
</range>

我预计索引术语是 abca b cxyzx y z 但我在监控和分析窗口的索引链接下找到了 abcxyz。还有搜索字符串

//compound[.="abca b c"] giving 0 results.

任何人都可以帮助为复合的全部内容创建索引,例如abcabcxyzxyz等等..

谢谢

索尼

【问题讨论】:

    标签: xquery exist-db


    【解决方案1】:

    在 xquery 中,您必须使用 data() 函数才能返回所有后代或子元素值。 因此,要测试是否可以返回 compound 元素的值,您可以使用以下命令:

    //compound/data()[.="abca b c"]
    

    【讨论】:

    • 但它是否使用在 节点上创建的索引
    • 你可以试试! fn:data() 函数的 marklogic 文档:docs.marklogic.com/fn:data
    【解决方案2】:
     nested="yes" attribute solved the problem.
    

    我已将范围索引更改为

    <range>
        <create qname="compound" type="xs:string" nested="yes" />
    </range>
    

    【讨论】:

    • 如果这是答案,请您将其标记为这样吗?否则,问题将显示为“未回答”。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-06-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-30
    • 2020-10-24
    • 1970-01-01
    相关资源
    最近更新 更多