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>
有人注意到这一区别了吗? 我在这里有什么想念的吗?
任何建议将不胜感激
答案 0 :(得分:2)
这可能是一个错误。检查实际分数,我希望它们可能落入相同的类别,并且最终得到相同的值。 ML8中存在一个错误,其中默认缩放比例与某些数据类型的记录范围不一致。解决方法是使用1/8的斜率。