поиск по радиодеталям

InterSky
Дата: 16.01.2013 21:50:48
В базе хранятся названия радиодеталей. Например:
- Транзистор BL3/2 XT
- Диод катодный T100-E (европа)
- LDE E27 LUM1000 Red

Раньше использовал обычный FULL TEXT поиск чтобы найти.
А потом начал изучать что ищут пользователи и вижу:
вместо BL3/2 XT набирают BL3XT (без двойки и целиком)
вместо T100-E набирают T100E (без дефиза)
вместо LUM1000 Red набирают 1000 RED (без части названия)

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

Уже хотел делать програмку которая приводит все названия к какому-то виду типа:
BL3/2 XT -> BL 3 2 XT
T100-E -> T 100 E
LUM1000 Red -> LUM 1000 Red
и через этот фильтр будет создаваться отдельное поле для поиска, и потом правиться все запросы...

Но правильно ли это? Может я изобретаю велосипед? Может есть уже готовые надстройки? Или кто-то поделится своими мыслями/опытом?
вадя
Дата: 16.01.2013 22:19:46
вот для такого
вместо LUM1000 Red набирают 1000 RED (без части названия)
могу подсказать вариант...

кто набирает? операторы или простые клиенты?
если операторы - могу подсказать вариант...
ravt
Дата: 16.01.2013 22:22:51
в запросе вместо символов которые не буквы-цифры ставить %, обременять строку % и использовать LIKE

Я сделал так в поиске по прайсу радиодеталей. нахожу все что мне нужно.
ravt
Дата: 16.01.2013 22:24:23
забыл добавить, все привести к верхнему регистру как в поисковом запросе так и в базе.
вадя
Дата: 16.01.2013 22:42:23
ravt
в запросе вместо символов которые не буквы-цифры ставить %, обременять строку % и использовать LIKE


для этого не поможет

вместо BL3/2 XT набирают BL3XT (без двойки и целиком)
вместо T100-E набирают T100E (без дефиза)
ART-CODE
Дата: 17.01.2013 10:14:14
Я бы вычислял процент похожести по биграммам или триграммам.
Например здесь обсуждалось.

Ну и слова "транзистор" и "диод" я бы в названии вообще не хранил. (таблица типов - "диод" и подтипов - "шотки")
Есть же официальные таблицы наименований от производителей, непонятно зачем называть их "своими словами" .
У разных производителей может быть разное наименование. Нужна будет таблица соответствий.
Ну а в идеале - еще и похожие по характеристикам искать, а не только по названию.
scook
Дата: 17.01.2013 10:57:00
Как вариант хранить в отдельном столбце код детали без доп. символов (T100-E как T100E), искать LIKE '%%', но не поможет в случае "вместо BL3/2 XT набирают BL3XT"...
scook
Дата: 17.01.2013 11:02:33
scook
Как вариант хранить в отдельном столбце код детали без доп. символов (T100-E как T100E), искать LIKE '%%', но не поможет в случае "вместо BL3/2 XT набирают BL3XT"...

+ обрезать доп символы пользовательского запроса (пробелы, тире слэши) "BL3/2 XT" в "BL32XT"
artas
Дата: 17.01.2013 11:42:57
InterSky,
используйте поиск от гугла, он найдет
Akina
Дата: 17.01.2013 11:43:43
Я бы убрал разделители и искал по подстроке.

А если кто будет возмущаться, что он "вместо BL3/2 XT набрал BL3XT (без двойки и целиком)" и ничего не нашёл - таких посылать в пешее эротическое.