Полнотекстовый поиск в MyISAM

S5
На сайте с 04.01.2010
Offline
77
634

Доброго времени суток. Разыскивается человек, который сталкивался с нативным полнотекстовым поиском в mysql. Суть вопроса следующая - имеем таблицу названий товара, таблица самая примитивная - id, title. Нужно организовать поиск по данной таблице с учетом следующих факторов - название наверняка не будет иметь точного вхождения (тобишь в одном прайсе это может быть "Аккумулятор", в другом "Акк.бат.", "Аккум.","Бат.аккум."). Товары преимущественно имеют какой-то свой идентификатор (он же код производителя, уникальный айди - называйте как хотите) - выглядит он примерно следующим образом: "32LN570V". Все бы ничего, но при следующих условиях:

Ищем: Телевизор LED LG 32" 32LN570V
Телевизор LG 32LN570V + Wi-Fi USB-модуль LG AN-WF100: 20.53
Телевизор LG 32LN570V: 20.37

как видим, из-за двойного вхождения слова "LG" первое выражение имеет больший вес, нежели второе. Вариант откидывать вхождение " + " отпадает, среди 150 тыс товаров есть много комплектов, в том числе и примерно следующие - "Карта Transcend microSD бла-бла-бла + SD адаптер (тут код товара)".

Вопрос в следующем - как поднять ранжирование второго товара над первым, в идеале - заставить полнотекстовый поиск использовать в весах каждое слово только 1 раз (оно либо есть, либо его нет). Прошу прощения если написал сумбур - пол дня бьюсь над проблемой, мозг потихоньку закипает.

siv1987
На сайте с 02.04.2009
Offline
427
#1
sg552:
как видим, из-за двойного вхождения слова "LG" первое выражение имеет больший вес, нежели второе.

не факт. может оно просто первым встречается

S5
На сайте с 04.01.2010
Offline
77
#2

Если есть русская дока на предмет весообразования для полнотекстового поиска - я бы с удовольствием почитал и был бы благодарен за ссылку. На данный момент, имею следующее:

Ищем: Телевизор LED 3D LG 42" 42LA691V
Телевизор LG 42LA691V + Видеокамера 3D Full HD DXG IC330: 24.57
Телевизор LG 42LA691V: 20.37

Кто может объяснить, почему у первого варианта настолько большой отрыв от второго?

IL
На сайте с 20.04.2007
Offline
435
#3
sg552:
Кто может объяснить, почему у первого варианта настолько большой отрыв от второго?
Ищем: Телевизор LED 3D LG 42" 42LA691V
Телевизор LG 42LA691V + Видеокамера 3D Full HD DXG IC330: 24.57
Телевизор LG 42LA691V: 20.37

3D?

Можно поиграться с уменьшением (оператор <) веса для "левых" (часто встречающихся) слов (3D LED и тд). Кроме того, определять брэнд (их на самом деле не так много - можно "ручками" выделить), возможно - серию (их тоже на самом деле не так много)..

Исключать ли их из поиска (просто заменять на пустоту перед отправкой в запрос), или же просто играться с весами (тем же preg_match добавлять перед строкой < или >) - по усмотрению (совершенствовать поиск можно бесконечно... :D)

... :) Облачные серверы от RegRu - промокод 3F85-3D10-806D-7224 ( http://levik.info/regru )

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий