【问题标题】:Issue with proximity search, with wildcard terms inside specified elements in MarkLogic邻近搜索问题,在 MarkLogic 中的指定元素内使用通配符
【发布时间】:2016-02-25 06:10:36
【问题描述】:

我们使用的是 MarkLogic 7.0-4。我们正面临邻近搜索问题,在指定元素中存在通配符。

查询如下所示:

cts:near-query(
  (
    cts:element-word-query(xs:QName("abstract"), "microf*)", 
      ("case-insensitive","diacritic-insensitive","punctuation-insensitive",
       "whitespace-sensitive","unstemmed","wildcarded","lang=en"), 1),
    cts:element-word-query(xs:QName("abstract"), "transplant*)",
      ("case-insensitive","diacritic-insensitive","punctuation-insensitive",
       "whitespace-sensitive","unstemmed","wildcarded","lang=en"), 1)
  ), 2, (), 1)

我们正在运行未过滤。它应该返回在指定元素中具有通配符术语的文档。尽管当前没有文档与查询匹配,但正在返回一个文档。显然,该文档是一个匹配项,因为它有一个元素,而不是在指定的元素中,该元素在给定距离内具有通配符。

在相关的索引设置中,我们启用了以下一项:

元素词的位置, 快速元素短语搜索, 三个字符搜索, 三个字词位置, 快速元素字符搜索, 快速元素词搜索, 尾随通配符搜索, 尾随通配符位置, 快速元素尾随通配符搜索

要重现的样本数据:

xdmp:document-insert(
  '/questions/33865927-1.xml',
  <root>
    <abstract>microfoo blah blah blah blah transplantbar</abstract>
  </root>
)

【问题讨论】:

    标签: search marklogic


    【解决方案1】:

    我添加了word positions 索引,误报消失了。

    您已打开element word positions。我怀疑只存储术语与包含元素相关的位置,而不是整个文档中的位置(不要引用我的话)。对于这个查询,即使我关闭了element word positions,只要word positions 处于打开状态,我也得到了正确的答案。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-24
      • 1970-01-01
      相关资源
      最近更新 更多