mySQL中的字符串排序算法
Quicksilver 评分算法
PHP 端口
Javascript 端口
MySql 端口(哦,没有链接)这是我的问题 继续阅读
示例用法:
score("hello world","axl") //=> 0.0
score("hello world","ow") //=> 0.6
score("hello world","hello world") //=> 1.0
好的,所以我的问题就在这里。就像这些一样棒,感谢那些使之成为可能的人!我很想用 mysql 的方式来做这件事。数据库不是我的专业领域,但如果我只想在 MySQL 中做到这一点,我该怎么做?我应该,有更好的方法吗?.
我对此的想法是这样的。
现实生活中的例子:
我的数据库中有 14000 多条记录。“ ICD9 ”医疗代码表,其中包含医疗代码和描述。
表:
ICD9_codes
字段:
代码
code_text
我正在对 php 函数进行 jQuery ajax 调用。
$query = $this->db->query("SELECT code, code_text FROM codes WHERE MATCH (code,code_text) AGAINST ('" .$q. "')");
这行得通,没关系。但我真正的心愿是使用评分算法!
如果我错了,请纠正我,我很可能是这样,如果你这样做,我会感到震惊:)
我认为搜索 14000 多条记录是一个非常昂贵的过程。(即使最小值为 2 个字符)使用 jQuery 自动完成。(这可能不太适合某些人,因为就像我说的“数据库不是我的专业领域”)
所以这就是我想知道的。是否值得花时间了解 MySQL 并获得相当于
Select code, code_text, score("hello world","ow") from ICD9_codes
如果您对这个想法有任何优点或缺点很想听听?或知道更好的方法:)
优点:
- MySQL拥有搜索算法的原生方式
缺点:
- 如果我无法控制数据库,我将无法添加 mysql 函数 score() (这会让我在php或javascript中执行此操作)
这时候会溜进去(Stackoverflow 很棒!!!很棒的社区!)谢谢,达斯汀