不区分大小写,未经过滤的搜索在 MarkLogic 中返回错误结果
case-insensitive with unfiltered search returning wrong results in MarkLogic
似乎存在与 unfiltered
和 case-sensitive
搜索相关的问题。
我是 运行 一个 element-value-query
和 case-sensitive
选项。
unfiltered
cts 搜索 return 给我错误的结果。
以下代码片段表现出错误的行为。
案例 1:
xdmp:document-insert('/a.xml', <a><name>Dixit</name></a>);
cts:search(
doc('/a.xml'),
cts:element-value-query(xs:QName('name'), 'dixit','case-sensitive'),
'unfiltered'
);
输出: return给我插入的 xml
预期: 不应该return
这里我认为在索引中,键 Dixit
等于 'dixit' 因此 return 告诉我 XML.
所以我尝试了下面的方法,但没有收获。
案例2:
xdmp:document-insert('/a.xml', <a><name>Dixit singla</name></a>);
cts:search(
doc('/a.xml'),
cts:element-value-query(xs:QName('name'), 'dixit singla','case-sensitive'),
'unfiltered'
);
输出: return插入 xml
预期: 不应该return
这是 MarkLogic 中的错误还是这是预期的行为。
我很想知道原因。
注意: fast case sensitive searches
& fast diacritic sensitive searches
两个索引都设置为 true
。
这与上面提到的有些不同。
索引解析取决于通用索引中的键匹配。事实证明 "Dixit" 的不区分大小写的键与 "dixit" 的区分大小写的键相同,因为计算不区分大小写的键的方式是计算单词的小写形式的键.因此在我们比较键的时候,有一个匹配区分大小写的键 "dixit" 所以索引 return 匹配。索引解析可以准确地要求查询中的大写词只匹配文档中的大写词,而不是查询中的小写词只匹配文档中的小写词。您需要过滤才能在此处获得准确的结果。
似乎存在与 unfiltered
和 case-sensitive
搜索相关的问题。
我是 运行 一个 element-value-query
和 case-sensitive
选项。
unfiltered
cts 搜索 return 给我错误的结果。
以下代码片段表现出错误的行为。
案例 1:
xdmp:document-insert('/a.xml', <a><name>Dixit</name></a>);
cts:search(
doc('/a.xml'),
cts:element-value-query(xs:QName('name'), 'dixit','case-sensitive'),
'unfiltered'
);
输出: return给我插入的 xml
预期: 不应该return
这里我认为在索引中,键 Dixit
等于 'dixit' 因此 return 告诉我 XML.
所以我尝试了下面的方法,但没有收获。
案例2:
xdmp:document-insert('/a.xml', <a><name>Dixit singla</name></a>);
cts:search(
doc('/a.xml'),
cts:element-value-query(xs:QName('name'), 'dixit singla','case-sensitive'),
'unfiltered'
);
输出: return插入 xml
预期: 不应该return
这是 MarkLogic 中的错误还是这是预期的行为。 我很想知道原因。
注意: fast case sensitive searches
& fast diacritic sensitive searches
两个索引都设置为 true
。
这与上面提到的有些不同。
索引解析取决于通用索引中的键匹配。事实证明 "Dixit" 的不区分大小写的键与 "dixit" 的区分大小写的键相同,因为计算不区分大小写的键的方式是计算单词的小写形式的键.因此在我们比较键的时候,有一个匹配区分大小写的键 "dixit" 所以索引 return 匹配。索引解析可以准确地要求查询中的大写词只匹配文档中的大写词,而不是查询中的小写词只匹配文档中的小写词。您需要过滤才能在此处获得准确的结果。