Marklogic cts搜索空格敏感

Marklogic cts搜索空格敏感,marklogic,Marklogic,我只是想创建一个未过滤的对空格敏感的cts查询,但不知何故,它无法正常工作(没有其他约束) 这是我的测试环境: xquery version "1.0-ml"; xdmp:document-insert("test1.xml", <test><title>test word</title></test>); xdmp:document-insert("test2.xml", <test><title>test-word&l

我只是想创建一个未过滤的
对空格敏感的
cts查询,但不知何故,它无法正常工作(没有其他约束)

这是我的测试环境:

xquery version "1.0-ml";

xdmp:document-insert("test1.xml", <test><title>test word</title></test>);
xdmp:document-insert("test2.xml", <test><title>test-word</title></test>);


cts:search(//test, cts:element-value-query(xs:QName("title"), "test word", ("whitespace-sensitive")), ("unfiltered"))
MarkLogic似乎在搜索两个单词
test
word
,但不带空格。它似乎没有使用选项
区分空格
。只有当我再添加三个选项“区分大小写”、“区分重音”和“区分标点”时,它才会执行实际的区分空白的搜索。删除任何选项都会导致不区分空格的搜索:

xdmp:plan(cts:search(//test, cts:element-value-query(xs:QName("title"), "test word", ("case-sensitive", "diacritic-sensitive", "punctuation-sensitive", "whitespace-sensitive")), ("unfiltered")))
=> ...
<qry:term-query weight="1">
 <qry:key>11298961959398038325</qry:key>
 <qry:annotation>element(title,value("test"," ","word"))</qry:annotation>
</qry:term-query>
xdmp:plan(cts:search(//test,cts:element-value-query(xs:QName(“title”),“test-word”(“区分大小写”,“区分重音”,“区分标点”,“区分空格”),(“未过滤”))
=> ...
11298961959398038325
元素(标题、值(“测试”、“单词”))
我是否误解了“空格敏感”选项


使用MarkLogic 9.8-0。

我认为您可能希望所有选项都可以不经过滤地解决。事实并非如此。如果不进行筛选,则无法解析某些选项以及选项和索引设置的组合。通常,只有在查询是“精确”值查询的情况下,才能从索引解析对空格敏感的查询。一般来说,空格(和标点符号)不编入索引。这就是计划向你展示的东西。由于该信息在索引中不可用,未筛选的查询将无法在此基础上排除结果。过滤器也包含实际数据,可以根据空白排除结果并返回正确的结果。

这很有意义。非常感谢您的回答!
xdmp:plan(cts:search(//test, cts:element-value-query(xs:QName("title"), "test word", ("case-sensitive", "diacritic-sensitive", "punctuation-sensitive", "whitespace-sensitive")), ("unfiltered")))
=> ...
<qry:term-query weight="1">
 <qry:key>11298961959398038325</qry:key>
 <qry:annotation>element(title,value("test"," ","word"))</qry:annotation>
</qry:term-query>