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。排序是否有错误?
解决方案
主排序键是 Levenshtein 距离,然后是键距离,然后是单词距离。
这里所有的 Levenshtein 距离都是 1,前两个的关键距离是 0,所以这就是为什么它们领先于最后一个。
推荐阅读
- r - 如何使用收集功能来操作我的数据框?
- python - 如何逐行遍历一个numpy矩阵?
- react-router - 如何实现跨多个 webpack 项目的单个依赖实例?
- database-normalization - 这个 3NF 分解做得对吗?
- hadoop - 无法在 Windows 10 上使用 derby 启动 Hive
- java - 从 SpringBoot 2.1.3.RELEASE 发送电子邮件
- css - 如何异步加载样式表(使用 loadCSS)
- angular - 我的 Angular 6 获取带有令牌授权标头的 HTTP 请求不起作用
- c# - 通过实体框架调用存储过程后的无效转换
- python - 为什么这个 CountVectorizer 输出与我的字数不同?