如何通过拼音检索数据库
我看到好多网站提供通过拼音来进行全文搜索的功能,但是不知道如何实现,各位高手是如何实现的,能否指点一下?
要实现的目标:假设数据库中存在Title、Author、Content三个字段,有用户需要搜索其中任何一个字段含有“软件开发”的条目,这时要允许用户通过输入“软件开发”或“ruanjiankaifa”或“rjkf”均能得到搜索结果。
低效率的实现方法一:我看到过有个网站源码是这样做的,它通过“Select * From……”把整个表取出,然后逐条循环tmp=rs("A")&getpy(rs("A"))&rs("B")&getpy(rs("B"))&rs("C")&getpy(rs("C")),然后对比tmp里是否含有request("key"),其中getpy()是它自定义的一个很长的函数。这样的做法虽然能实现,但是效率也太低了,不仅要把整个数据库全部搬下来,还要对每个字都进行getpy()才能得到结果。
低效率的实现方法二:对数据库每个字段都增加一个对应的拼音字段,也就是数据结构变成Title、TitlePy、Author、AuthorPy、Content、ContentPy,然后修改Select语句查询它们,但是这样在每次更新数据库时都要维护一次对应的拼音字段,效率仍然低下,并且还使数据库体积成倍增大,仅仅为了一个拼音搜索功能,不值。
各位高手有什么看法呢?