我正在使用ML 8。
">未过滤"CTS:对于带有"词干"选项的变音符号单词,搜索无法按预期工作
找到以下示例。
我已经在带有 uri/a 的 ML DB 中插入了以下 xml.xml
案例1:
<root>
<a>FSM İlmî Araştırmalar İnsan ve Toplum Bilimleri Dergisi</a>
</root>
和我正在使用的查询
cts:search(/*,cts:element-word-query(xs:QName("a"), "FSM İlmî Araştırmalar İnsan ve Toplum Bilimleri Dergisi",("case-insensitive","stemmed")),'unfiltered')
上面的查询导致空结果,如果我选择unstemmed
那么它可以正常工作。
而在其他一些情况下,它与stemmed
选项一起工作。
例如案例2:
<root>
<c>Życie Literackie</c>
</root>
在这种情况下,具有stemmed
选项的相同查询工作正常。
所以,我的问题是为什么stemmed
选项在第一种情况下没有按预期工作,为什么它在第二种情况下工作正常。
另外,stemmed
在音调符号搜索中的作用是什么?
案例3:我用uri/d插入了下面的普通字符串.xml
<root>
<c>Zycie Literackie</c>
</root>
并运行查询-
cts:search(/*,cts:element-word-query(xs:QName("c"), "Zycie Literackie",("case-insensitive","stemmed")),'unfiltered')
但它同时返回音调符号和普通字符串。 结果如下所示
<root>
<c>Życie Literackie</c>
</root>
<root>
<c>Zycie Literackie</c>
</root>
它应该只返回普通字符串Zycie Literackie
。
同样,插入一个 XML 文件,如下所示
案例4:
<root>
<data>Türkiye Araştırmaları Literatür Dergisi</data>
</root>
查询是-
cts:search(
doc(),
cts:element-word-query(
xs:QName('data'),
"Turkiye Araştırmaları Literatür Dergisi",
('case-insensitive','wildcarded','diacritic-sensitive','unstemmed')
),
"unfiltered"
)
然后,它会导致空结果。如果使用Turkiye
、Araştırmaları
或Literatür
这样的单词进行搜索,它将返回正确的结果。
为什么在查询中找不到具有给定字符串的所需搜索结果,而它对单个单词工作正常?
.
情况 3 的说明:如果未在选项中显式指定"音调敏感",文本节点内容将确定它应执行"音调敏感"搜索还是"音调符号不敏感"搜索。如果文本节点中的单词包含音调符号字符,则不执行"音调敏感"搜索。这同样适用于区分大小写的情况。