法术:建议错误的命令?

时间:2018-05-07 12:31:48

标签: marklogic

我正在使用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 :(得分:5)

主要排序键是Levenshtein距离,然后是键距离,然后是单词距离。

这里所有人的Levenshtein距离都是1,前两个的关键距离是0,所以这就是为什么他们领先于最后一个。