论坛首页 Java企业应用论坛

Mysql全文检索探讨

浏览 1727 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2013-10-16  
今天组长又给了个小问题来搞搞。其实这应该是DBA来做的,但是他说这数据量不大,你就编个码来弄一下就可以了。
要求是这样的,一个用户表里有几万条记录,里面记录着每个用户的地址(美国),现在要求做检索,数据表结构如下图。



city,state,zip(这三个字段已做数据库索引)这三个字段都是必须使用匹配的,address这个字段则可以是模糊匹配。

检索的时候比如输入:2317 Settlers Way Blvd, Houston, TX
从检索条件可以得到address,city,state这三个字段,要求把相关的记录列出。

现在我的SQL是这样的:

select address,city,state,zip,phone from customer where city = 'city' and state = 'state' and address like  '%address%'


虽然这样也可以得到结果,但是好像跟老大说要的结果不太一样,他的意思是尽量让相似度高的排在前面,就比如ITEYE的搜索一样。当然,如果使用了lucene,Sphinx这样的搜索工具当然可以实现。问题是现在只有几万条记录,原来系统里也没有使用lucene或Sphinx,现在想通过纯数据库来索引,大家可有办法?

  • 大小: 11.4 KB
   发表时间:2013-10-23  
纯数据好像没这功能,不然你要重新索引address那一列,数据量不大,你拿到内存来本地做排序吧
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics