我们正在使用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>
)
答案 0 :(得分:0)
我添加了word positions
索引,误报消失了。
您已启用element word positions
。我怀疑只有商店的条款与包含元素相关,而不是整体文档中的位置(不要引用我的内容)。对于此查询,即使我关闭了element word positions
,只要word positions
处于启用状态,我就会得到正确答案。