【发布时间】: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>
)
【问题讨论】: