Текущее время: Пн, июл 28 2025, 09:28

Часовой пояс: UTC + 3 часа


Правила форума


ВНИМАНИЕ!

Вопросы по SAP Query и Quick View - сюда



Начать новую тему Ответить на тему  [ Сообщений: 7 ] 
Автор Сообщение
 Заголовок сообщения: Поиск по маске (алгоритм)
СообщениеДобавлено: Вт, авг 17 2010, 12:15 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Чт, ноя 20 2008, 16:29
Сообщения: 245
Откуда: RU->DE
Пол: Мужской
Господа, поможите скорее

Есть таблица (в БД), содержащая маски:
*ЕТЯ
*АСЯ
ВАСЯ
*

Задачи на самом деле 2:
1) Для любого поданого на вход имени (оно само точно не является маской) найти строку
2) Желательно чтобы это была наиболее релевантная строка

По первому пунктику сделал только путём выгрузки всей таблицы во внутреннюю (что уже некрасиво). По второму даже идей нет.

Ваши предложения?


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Поиск по маске (алгоритм)
СообщениеДобавлено: Вт, авг 17 2010, 12:59 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Ср, июн 13 2007, 16:36
Сообщения: 585
Откуда: Belarus
Пол: Мужской
BaBuin написал:
Ваши предложения?

Наши предложения: для начала преобразовать поток сознания в понятную постановку.
Что где хранится ?
Что куда подаётся ?
Критерии релевантности ?
Примеры ?


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Поиск по маске (алгоритм)
СообщениеДобавлено: Вт, авг 17 2010, 13:04 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Чт, ноя 20 2008, 16:29
Сообщения: 245
Откуда: RU->DE
Пол: Мужской
:) Поток сознания таков:
1) В прозрачной таблице базы данных в одном из полей (пусть будет поле NAME) хранятся маски (пример в первом посте)
2) Хотелось бы сделать какой-то ХИТРЫЙ_SELECT_WHERE name = 'ВАСЯ', чтобы получить строку 3, или например ХИТРЫЙ_SELECT_WHERE name = 'ПЕТЯ', чтобы получить первую строку
3) Критерии релевантности таковы, что при выборке по слову ВАСЯ желательно чтобы нашёлся ВАСЯ, а не *АСЯ или просто * (хотя они тоже подходят)
4) Все примеры выше


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Поиск по маске (алгоритм)
СообщениеДобавлено: Вт, авг 17 2010, 13:20 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Чт, ноя 20 2008, 16:29
Сообщения: 245
Откуда: RU->DE
Пол: Мужской
ОБъясню ещё проще. В детском саду есть таблица у воспитателя что всем детям раздать по 5 конфет, а Васе - 3 конфеты (провинился). Выглядит это так:
Code:
*     | 5
ВАСЯ  | 3


В момент раздачи конфет идём перебором по записям и получаем что ВАСЯ подходит по маске в первой строке. И он незаслужено получает 5 конфет.

Пока что решил это выгрузкой во внутреннюю таблицу и обратной сортировкой. Просто думаю что это некрасиво и ещё вдобавок может получиться неправильно.


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Поиск по маске (алгоритм)  Тема решена
СообщениеДобавлено: Вт, авг 17 2010, 14:59 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Пт, сен 23 2005, 11:11
Сообщения: 963
по 2) выгружайте во внутр.,
релевантность -> отсортируйте совпадающие маски [кол-во букв в маске /обратн., кол-во спец. симв. в маске *+ /прям],
выберите первую маску


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Поиск по маске (алгоритм)
СообщениеДобавлено: Вт, авг 17 2010, 15:07 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Чт, ноя 20 2008, 16:29
Сообщения: 245
Откуда: RU->DE
Пол: Мужской
Похоже так правильней всего. Раз уж от внутренних таблиц не уйти, то так и поступлю пожалуй. Спасибо.


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Поиск по маске (алгоритм)
СообщениеДобавлено: Вт, авг 17 2010, 16:23 
Модератор
Модератор
Аватара пользователя

Зарегистрирован:
Пт, июн 16 2006, 00:43
Сообщения: 1686
Откуда: Москва <-> Красноярск
Пол: Мужской
От внутренней таблицы не уйдете. Это плата за кросплатформенность.

Впрочем я бы советовал использовать FIND с дополнением RESULTS и регулярные выражения.
Оптимальный результат предсказуемо дает вариант, когда длина искомой маски равана длине соответствия.

P.S.: Если допустить варианты масок вроде "*****", то можно проанализировать и таблицу подгрупп соответствия.


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 7 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB