Поиск по сайту (таблица MySQL)

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
И насколько твое плохо - "плохо"?
 

StalkerClasses

Новичок
Ну если ввести слово контакты - то по идее должна вываливаться первой страницы контакты, а уже потом все остальное.
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
StalkerClasses, вес можно и руками впилить на подобие SELECT ... IF(f1 LIKE '%хрень%', @weight:=1, @weight:=0) as w, IF(f1 LIKE '%хрень2%', @weight:=@weight+1, @weight:=@weight)
 

StalkerClasses

Новичок
StalkerClasses, вес можно и руками впилить на подобие SELECT ... IF(f1 LIKE '%хрень%', @weight:=1, @weight:=0) as w, IF(f1 LIKE '%хрень2%', @weight:=@weight+1, @weight:=@weight)
Это слишком сложно - проще уже тогда разобраться с полнотекстовым поиском.
Как правильно создать таблицу (где есть четыре колонки)

Так:
FULLTEXT (title,keywords,description,content)

Или
FULLTEXT (title) ,
FULLTEXT (keywords) ,
FULLTEXT (descriptiont) ,
FULLTEXT (content)
 

StalkerClasses

Новичок
Вот такая штука у меня получилась

Код:
                SELECT title,url, (
                        MATCH(title) AGAINST(:1 IN BOOLEAN MODE) * 10 +
                        MATCH(meta_keywords) AGAINST(:1 IN BOOLEAN MODE) * 7 +
                        MATCH(meta_description) AGAINST(:1 IN BOOLEAN MODE) * 5 +
                        MATCH(content) AGAINST(:1 IN BOOLEAN MODE)
                    ) AS `relev`
                    FROM tx_se_content 
                    WHERE 
                      ( MATCH(`title`) AGAINST(:1 IN BOOLEAN MODE)
                        OR
                        MATCH(`meta_keywords`) AGAINST(:1 IN BOOLEAN MODE)
                        OR
                        MATCH(`meta_description`) AGAINST(:1 IN BOOLEAN MODE)
                        OR
                        MATCH(`content`) AGAINST(:1 IN BOOLEAN MODE)
                        ) AND hidden = 0 AND deleted=0
                    ORDER BY `relev` DESC 
                    LIMIT 7
FULLTEXT (title) ,
FULLTEXT (keywords) ,
FULLTEXT (descriptiont) ,
FULLTEXT (content)
 
Сверху