2009-08-01 3 views
0

Я пытался создать эту поисковую базу для базы данных MySQL. Ввод пользовательского ввода не вызывает проблем, запрос базы данных также прекрасен.Проблемы с поисковой системой

Одна вещь, мне нужно, чтобы выяснить это:

Я строка в базе данных

Как соответствовать входной «AM», но сохранить тот же случай? Есть PHP функции, такие как str_ireplace или preg_replace/eregi_replace, но то, что мне нужно сделать, это разделить строку в соответствии с каждый точный матч (как отдельное слово, так сделать не матч «Агнец», только «я»).

Таким образом, я могу выделить совпадения. Кроме того, я должен выяснить, как динамически укоротить строку, но сохранить, где матчи в середине:

... это часть строки, где ...

и делать это в соответствии до размера шрифта, установленного пользователем в любом браузере. У меня был тот, который работал только в WebKit, но это не хорошо. Пожалуйста, ответьте на что-то вроде PHP или Python, я не являюсь человеком с твердым ядром.

ответ

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) 
Смежные вопросы