我想做一个针对mysql数据库的搜索引擎,以下是我的构想首先,当用户输入一个进行查找的字符串时,php代码产生4个数组,分别代表4个“优先级”,且这4个数组被储存在一个二维数组中(这...
我想做一个针对mysql数据库的搜索引擎,以下是我的构想
首先,当用户输入一个进行查找的字符串时,php代码产生4个数组,分别代表4个“优先级”,且这4个数组被储存在一个二维数组中(这些我已经用php实现,关键是后面mysql数据库的操作)
假设我产生的4个数组是这样的(每个数组中只有一个元素)
1、aaa
2、bbb
3、ccc
4、ddd
假设进行查找的表是这样的一个表,auto为表的auto_increment字段,content为查询面向的字段
auto content
1 dddcccbbb
2 cccaaabbb
3 aaaaaabbb
4 ddddddccc
5 bbbdddaaa
这时,每行的相似度开始都为0,content中出现一个aaa(也就是第一个数组中的元素)则相似度加1000,出现一个bbb则相似度加100(也就是第二个数组中的元素,以此类推)出现一个ccc加10,一个ddd加1。当计算好后根据这个相似度进行排列。
这样,那个auto为3的字段被排在最前面因为它有两个aaa和一个bbb,所以它的相似度为1000+1000+100=2100,高于其他任何行。
Ps:我希望这个过程完全由mysql完成而不要用php,因为听说这样占用的系统资源少。当mysql处理好后我会用php的mysql_fetch_array()函数直接获取查询结果并直接输出
顺便想问一下是否让mysql来完成这种过程比让php来完成这种过程更节省系统资源?
当然,上述的仅是本人对于搜索引擎查找的一个逻辑结构构想,如果有更好的逻辑结构或者更简单的方法,请不吝赐教。
展开