我正在使用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的前两个结果的距离。 订购中是否有错误?
答案 0 :(得分:5)
主要排序键是Levenshtein距离,然后是键距离,然后是单词距离。
这里所有人的Levenshtein距离都是1,前两个的关键距离是0,所以这就是为什么他们领先于最后一个。