2009-08-01 126 views
0

我一直在試圖讓這個搜索引擎爲MySQL數據庫。考慮到用戶輸入沒有問題,數據庫查詢也很好。搜索引擎困境

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

我是一個字符串中的數據庫

如何匹配輸入「AM」,但保持相同的情況下?有喜歡str_ireplacepreg_replace/eregi_replace PHP函數,但我需要做的是分裂根據每一個確切匹配字符串(如獨立的話,那麼不要匹配「羔羊」,只有「是」)。

這樣我可以突出顯示比賽。此外,我需要弄清楚如何動態縮短一個字符串,但保持在那裏的比賽是在中間:

...這是字符串,其中的一部分......

,這根據做以任何瀏覽器中的用戶設置的字體大小。我有一個只能在WebKit中工作的人,但這並不好。請用PHP或Python之類的東西回答,我不是一個硬核C類的人。

回答

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)