相关疑难解决方法(0)

元素词位置 - 概念问题

我试图了解element word positions索引设置的影响.请参阅以下xquery,它返回简单element-word-query搜索的计划:

xdmp:plan(cts:search(doc(), 
  cts:and-query(
    cts:element-word-query(xs:QName("name"), "element word position")
  ),
  ("unfiltered")
))
Run Code Online (Sandbox Code Playgroud)

并且final-plan如果索引没有被激活(还原形式,以节省空间):

<qry:and-query>
    <qry:term-query>element(name),pair(word("element"),word("word"))</qry:term-query>
    <qry:term-query>element(name),pair(word("word"),word("position"))</qry:term-query>
    <qry:term-query>word("element")</qry:term-query>
    <qry:term-query>word("word")</qry:term-query>
    <qry:term-query>word("position")</qry:term-query>
</qry:and-query>
Run Code Online (Sandbox Code Playgroud)

索引激活后的查询计划(word-positions以及element word positions):

<qry:and-query>
    <qry:term-query>element(name),pair(word("element"),word("word"))</qry:term-query>
    <qry:term-query>element(name),pair(word("word"),word("position"))</qry:term-query>
    <qry:element-query>
        element(name)
        <qry:word-query>
            <qry:KP pos="0">word("element")</qry:KP>
            <qry:KP pos="1">word("word")</qry:KP>
            <qry:KP pos="2">word("position")</qry:KP>
        </qry:word-query>
    </qry:element-query>
</qry:and-query>
Run Code Online (Sandbox Code Playgroud)

所以我假设,因为term-query生成的数量较少,所得到的候选片段id计数将会更小,因此索引分辨率的交集更快.除此之外,我真的很想了解一下如何element-query在幕后工作.所以我有几个问题:

  • 如果element word positions激活了索引中保存了哪些附加信息?
  • 索引和发布列表如何?关键是元素还是元素+单词组合?是否有可视化的图形资源?(不是让你画画的东西)
  • 还有怎么element-query执行?我看到一个简单的term-query返回短线重要的倒排表,但我不知道如何element-queryword-query作为"子查询"是evalutated.

编辑:添加了一张图片,可视化我对索引在启用元素字位置时的外观的理解.(有关详细信息,请参阅mholstege的答案评论) 在此输入图像描述

marklogic

3
推荐指数
1
解决办法
56
查看次数

标签 统计

marklogic ×1