搜索引擎的困境

时间:2009-08-01 02:11:54

标签: php javascript python mysql search

我一直在努力为MySQL数据库创建这个搜索引擎。接受用户输入没问题,数据库查询也没问题。

我需要弄清楚的是:

  

我是数据库中的字符串

如何匹配输入“AM”,但保持相同的情况?有str_ireplacepreg_replace / eregi_replace这样的PHP函数,但我需要做的是根据每个完全匹配来分割字符串(作为单独的单词,所以匹配“lAMb”,只有“am”)。

这样我可以突出显示比赛。此外,我需要弄清楚如何动态缩短字符串,但保持匹配位于中间位置:

  

...这是字符串的一部分......

并根据用户在任何浏览器中设置的font-size执行此操作。我有一个只在WebKit工作,但这不好。请回答一下像PHP或Python这样的东西,我不是一个顽固的C类人。

1 个答案:

答案 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)