Таггу x_x

Таггу x_x
Рейтинг
445
Регистрация
31.10.2005
Должность
больной ублюдок
Интересы
твоя мамка
Родился, живу пока, но чую осталось не долго...

Класс! Особенно на моем новом 19 мониторчике :)

Красиво, спасибо.

Мое IMHO:

Это когда ищут например "инфраструктуры сбора и утилизации макулатуры"

Ну или "магазин веб-дизанов" :)

Конкретные цифры тут не причем. Ибо из названия термина и так все ясно. Запрос, редко задаваемый ПС, по отношению к другим.

А вообще вопрос странный, из серии "Что для вас протокол HTTP? Каков он?"

Вам сюда 😂 :d 😆

ChatJokey Jokey:
Принимаю всех кроме:
-не порнуха
-прямая ответная ссылочка в любом из представленных видов
- не "галимый" сайт

Это как понимать то? То есть принимается только порнуха и галимые сайты?

😂

Такс. Из всего выше изложенного, прихожу к выводу, что FULLTEXT отправляется в печку... Собственно, что же остается? Использовать нечто подобное механизму изложенному уважаемым Зодчим? И вообще, реален ли в таком случае адекватный поиск в MySQL?

ЗодчийТеней:
...попробуйте что-то вроде
$query = "SELECT `search`.*, "
." IF (search like '%".$text."%', 3*10, 0) "
." + IF (search LIKE '%".str_replace(" ", "%', 9, 0) + IF (search LIKE '%", $text)."%', 9, 0) AS relev"
." FROM `search` "
." WHERE (`search`.`search` LIKE '%".str_replace(" ", "%' OR `search`.`search` LIKE '%", $text)."%') "
." ORDER BY relev DESC";
..

Это все очень хорошо, но причем тут FULLTEXT? Зачем городить кучу LIKE если есть готовый механизм поиска по FULLTEXT INDEX?

MATCH `поле` AGAINST ('запрос') уже выдает мне некое число, оценивающее релевантность. Я просто складываю релевантность всех индексных полей, вычисляя общюю. И ничего не тормозит. Так, что... ладно, всем спасибо огромное, буду дальше разбираться...

Scaramush:
Tarry
И крайнее... результат выборки в in boolean mode может не совпадать с выборкой для определения релевантности... в этом случае, мускуль просто не выдаст те строки, которые не смог отсортировать. Попробуйте потестить... посмотрите выдачу по запросу без "in boolean mode" и выдачу по тому же запросу в режиме "in boolean mode"...

Вот это уже ближе к истине, ибо так оно и есть. Но boolean mode нужен для модификации словосочитаний по +*- итд. Так что без него не куда...

А релевантность boolean mode как раз выдается либо 0 либо 1. Так что приходится комбинировать эти два типа. Засада, короче.

akkn:
Вы не угадали иронию в моих словах. ...

А Вы в моих! :)

akkn:
Я согласен, что сайт с ошибками - несолидно. Появилась смешная идея: сайты, оптимизированные под ошибки считать дорвеем, а заточенные под ошибки ссылки - разновидностью клоакинга =)

Ага, людей которые говорят звОнит, вместо звонит высылать за 101-ый редирект :)

ЗодчийТеней:
выборку и сортировку ты делаешь sql запросом (средствами mysql fulltext, match against in boolean mode) и при этом утверждаешь что ошибка не в нем? приведи пример своего запроса, рабочий пример, и тогда будет что обсудить, покачьто постановка вопроса идет на уровне "у меня ошибка, помогите". Так тебе наврядли что-то объяснят, да и думаю что вопросы по мьускулю не типичны для данного форума.

1

Прочитайте внимательней вопрос. Если вамнечего ответить, не пишите.

Суть проблемы НЕ В ЗАПРОСЕ. А в механизме расчета релевантности в MySQL FULL TEXT.

Пример рабочего запроса, специально для Вас:

$sql ="

SELECT *, MATCH SCONT AGAINST('$stxt')/$devider1
+
MATCH STITLE AGAINST('$stxt*')/$devider2
+
MATCH META_KEYS AGAINST('$stxt*')/$devider3
+
MATCH META_DESC AGAINST('$stxt*')/$devider4
AS Rel
FROM `INDEX_BASE`
WHERE MATCH SCONT AGAINST('$stxt' IN BOOLEAN MODE)
AND
MATCH STITLE AGAINST('$stxt' IN BOOLEAN MODE)
AND
MATCH META_KEYS AGAINST('$stxt' IN BOOLEAN MODE)
AND
MATCH META_DESC AGAINST('$stxt' IN BOOLEAN MODE)
ORDER BY Rel DESC

LIMIT $begin,$lines";

Всего: 11584