заклинание: предложить с неправильным порядком? - PullRequest
0 голосов
/ 07 мая 2018

Я использую spell:suggest для запроса словаря. Я бы предположил, что результат упорядочен по расстоянию. Но это не так, как показано в следующем примере spell:suggest-detailed.

Пример:

spell:suggest-detailed("/my-dictionary.xml", "cohn", 
  <options xmlns="http://marklogic.com/xdmp/spell">
    <distance-threshold>10</distance-threshold>
    <maximum>3</maximum>
  </options>
)

Результат:

<spell:suggestion original="cohn" dictionary="/my-dictionary.xml" xmlns:spell="http://marklogic.com/xdmp/spell">
  <spell:word distance="10" key-distance="0" word-distance="50" levenshtein-distance="1">coin</spell:word>
</spell:suggestion>
<spell:suggestion original="cohn" dictionary="/my-dictionary.xml" xmlns:spell="http://marklogic.com/xdmp/spell">
  <spell:word distance="10" key-distance="0" word-distance="50" levenshtein-distance="1">conn</spell:word>
</spell:suggestion>
<spell:suggestion original="cohn" dictionary="/my-dictionary.xml" xmlns:spell="http://marklogic.com/xdmp/spell">
  <spell:word distance="9" key-distance="1" word-distance="45" levenshtein-distance="1">crohn</spell:word>
</spell:suggestion>

Расстояние третьего результата равно 9, что меньше расстояния первых двух результатов, которые имеют расстояние 10. Есть ли ошибка в заказе?

1 Ответ

0 голосов
/ 07 мая 2018

Первичный ключ сортировки - это расстояние Левенштейна, затем расстояние до ключа, затем расстояние до слова.

Здесь расстояние Левенштейна равно 1 для всех из них, ключевое расстояние равно 0 для первых двух, поэтому они опережают последнее.

...