【问题标题】:Search engine woes搜索引擎问题
【发布时间】:2010-11-15 23:37:59
【问题描述】:

我一直在尝试为 MySQL 数据库制作这个搜索引擎。接受用户输入没问题,数据库查询也没问题。

我需要弄清楚的一件事是:

我是数据库中的一个字符串

如何匹配输入“AM”,但保持相同的大小写?有像str_ireplacepreg_replace/eregi_replace这样的PHP函数,但我需要做的是根据每个精确匹配分割字符串(作为单独的词,所以不要 匹配“lAMb”,仅匹配“am”)。

所以我可以突出显示匹配项。我还需要弄清楚如何动态缩短字符串但保持匹配在中间:

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

并根据用户在任何浏览器中设置的字体大小执行此操作。我有一个只在 WebKit 中工作的,但这不好。请用 PHP 或 Python 之类的东西回答,我不是 C 的铁杆。

【问题讨论】:

    标签: php javascript python mysql search


    【解决方案1】:

    我建议你阅读这篇文章

    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);
    
    +----+-----------------------------+------ ------------+ |编号 |身体 |分数 | +----+-----------------------------+------ ------------+ | 4 | 1.永远不要以root身份运行mysqld。 2. ... | 1.5219271183014 | | 6 |正确配置后,MySQL ... | 1.3114095926285 | +----+-----------------------------+------ ------------+ 2 行(0.00 秒)

    【讨论】: