score-function = reciprocal似乎无法正常运行Marklogic 9-0-9.1

时间:2019-09-20 12:13:04

标签: marklogic marklogic-8 marklogic-9

cts:element-range-query中的

score-function选项在marklogic 9.0-9.1版中似乎不起作用。但它可以在marklogic版本8中使用。

要对此进行测试,请使用插入查询在文档数据库中插入少量文档:

xdmp:document-insert("/test1.xml", <rating>1</rating>, (), "temp"),
xdmp:document-insert("/test2.xml", <rating>2</rating>, (), "temp"),
xdmp:document-insert("/test3.xml", <rating>3</rating>, (), "temp"),
xdmp:document-insert("/test4.xml", <rating>4</rating>, (), "temp")

为文档数据库中的元素“评级”添加了元素范围索引

cts:search(fn:doc(), cts:element-range-query(fn:QName("","rating"), "<=", xs:int("4"), ("score-function=reciprocal"), 2))

从ML 9.0-9.1获得的结果

<?xml version="1.0" encoding="UTF-8"?>
<rating>1</rating>
<?xml version="1.0" encoding="UTF-8"?>
<rating>3</rating>
<?xml version="1.0" encoding="UTF-8"?>
<rating>2</rating>
<?xml version="1.0" encoding="UTF-8"?>
<rating>4</rating>

从ML 8.0-4.2获得的结果

<?xml version="1.0" encoding="UTF-8"?>
<rating>4</rating>
<?xml version="1.0" encoding="UTF-8"?>
<rating>3</rating>
<?xml version="1.0" encoding="UTF-8"?>
<rating>2</rating>
<?xml version="1.0" encoding="UTF-8"?>
<rating>1</rating>

有人注意到这一区别了吗? 我在这里有什么想念的吗?

任何建议将不胜感激

1 个答案:

答案 0 :(得分:2)

这可能是一个错误。检查实际分数,我希望它们可能落入相同的类别,并且最终得到相同的值。 ML8中存在一个错误,其中默认缩放比例与某些数据类型的记录范围不一致。解决方法是使用1/8的斜率。