我一直在努力为MySQL数据库创建这个搜索引擎。接受用户输入没问题,数据库查询也没问题。
我需要弄清楚的是:
我是数据库中的字符串
如何匹配输入“AM”,但保持相同的情况?有str_ireplace
或preg_replace
/ eregi_replace
这样的PHP函数,但我需要做的是根据每个完全匹配来分割字符串(作为单独的单词,所以不匹配“lAMb”,只有“am”)。
这样我可以突出显示比赛。此外,我需要弄清楚如何动态缩短字符串,但保持匹配位于中间位置:
...这是字符串的一部分......
并根据用户在任何浏览器中设置的font-size执行此操作。我有一个只在WebKit工作,但这不好。请回答一下像PHP或Python这样的东西,我不是一个顽固的C类人。
答案 0 :(得分:4)
我建议你阅读这个
http://dev.mysql.com/doc/refman/5.1/en/fulltext-search.html
它可以帮助您构建更好的搜索引擎,并可能回答您问题的某些部分
以下是您可以做的一个很好的例子:
mysql> SELECT id, body, MATCH (title,body) AGAINST
-> ('Security implications of running MySQL as root'
-> IN NATURAL LANGUAGE MODE) AS score
-> FROM articles WHERE MATCH (title,body) AGAINST
-> ('Security implications of running MySQL as root'
-> IN NATURAL LANGUAGE MODE);
+----+-------------------------------------+-----------------+ | id | body | score | +----+-------------------------------------+-----------------+ | 4 | 1. Never run mysqld as root. 2. ... | 1.5219271183014 | | 6 | When configured properly, MySQL ... | 1.3114095926285 | +----+-------------------------------------+-----------------+ 2 rows in set (0.00 sec)