我进行了快速测试,这似乎与文档相矛盾。我创建了一个名为test 的字段。它不包括根和元素B,但包括权重为1.0 的A 和权重为“2.0”的B。然后我在 QConsole 中运行了以下内容:
xdmp:document-insert("/field-test-X.xml", <X>test</X>, (), "field-test"),
xdmp:document-insert("/field-test-XA.xml", <X><A>test</A></X>, (), "field-test"),
xdmp:document-insert("/field-test-XAB.xml", <X><A><B>test</B></A></X>, (), "field-test"),
xdmp:document-insert("/field-test-XABC.xml", <X><A><B><C>test</C></B></A></X>, (), "field-test"),
xdmp:document-insert("/field-test-XAC.xml", <X><A><C>test</C></A></X>, (), "field-test"),
xdmp:document-insert("/field-test-XC.xml", <X><C>test</C></X>, (), "field-test")
;
cts:search(collection("field-test"), cts:field-word-query("test", "test")) ! (xdmp:node-uri(.) || " - " || cts:score(.))
它返回了我:
/field-test-XABC.xml - 30976
/field-test-XC.xml - 30976
/field-test-XAC.xml - 30976
/field-test-XA.xml - 22528
这告诉我们,元素 C 内的单词 test 得分更高,无论它是直接出现在 A 内,还是在其间出现排除元素 B,甚至单独出现。在所有情况下,结果都获得最高分,这表明应用了更高的提升。
HTH!