оценка-функция = взаимное, кажется, не работает Marklogic 9-0-9.1 - PullRequest
1 голос
/ 20 сентября 2019

опция Score-функции в cts: элемент-диапазон-запрос, кажется, не работает в 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")

добавил индекс диапазона элементов для элемента "rating" в документбаза данных

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 Ответ

1 голос
/ 20 сентября 2019

Это может быть ошибкой.Проверьте, какие фактические оценки есть, я ожидаю, что они, возможно, попадают в одно и то же ведро и заканчиваются тем же значением сейчас.В ML8 была ошибка, когда масштабирование по умолчанию не совпадало с задокументированными диапазонами для определенных типов данных.В качестве обходного пути вы должны использовать коэффициент наклона 1/8.

...