我正在使用ML 8。
'未过滤'cts:对于带有'stemmed'选项的变音词而言,搜索无法正常工作
找到以下示例。
我已使用uri /a.xml
在ML DB中插入了以下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
等字词进行搜索,则会返回正确的结果。
为什么查询中找不到所需的搜索结果,而单词却能正常运行?
答案 0 :(得分:0)
案例3的解释:如果未在选项中明确指定“变音符号敏感”,则文本节点内容将确定是否应执行“变音符号敏感”搜索或“变音不敏感”搜索。如果文本节点中的单词包含变音字符,则执行“变音符敏感”搜索,否则不执行。同样适用于区分大小写。