Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Частичный поиск в строке. / 17 сообщений из 17, страница 1 из 1
27.10.2014, 18:36:22
    #38788555
Protonex
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Частичный поиск в строке.
Дано:
1. Входные данные (Поисковая строка с произвольным текстом)
2. БД с таблицей "ключевых слов и фраз"

Требуется найти строки в бд, слова из которых в любом порядке присутствуют во входной строке.

Например, входная строка: "Съешь же еще этих мягких французских булок да выпей чаю".
И таблица:
id | text
----------------------
0 | ночь этих
1 | еще улица
2 | французских вин
3 | аптека
4 | булок мягких французских
5 | еще чаю
6 | кофе
----------------------

И запрос должен вернуть строки 4, 5..
Этакий %like% наизнанку...
...
Рейтинг: 0 / 0
27.10.2014, 19:16:21
    #38788581
javajdbc
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Частичный поиск в строке.
ProtonexДано:
1. Входные данные (Поисковая строка с произвольным текстом)
2. БД с таблицей "ключевых слов и фраз"

Требуется найти строки в бд, слова из которых в любом порядке присутствуют во входной строке.

Например, входная строка: "Съешь же еще этих мягких французских булок да выпей чаю".
И таблица:
id | text
----------------------
0 | ночь этих
1 | еще улица
2 | французских вин
3 | аптека
4 | булок мягких французских
5 | еще чаю
6 | кофе
----------------------

И запрос должен вернуть строки 4, 5..
Этакий %like% наизнанку...

RTFM: MySQL & FULLTEXT
...
Рейтинг: 0 / 0
28.10.2014, 11:58:18
    #38789125
Protonex
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Частичный поиск в строке.
FULLTEXT не дает нужной определенности в результатах...
К тому же не очень любит короткие, частые, "цифровые" слова...
...
Рейтинг: 0 / 0
28.10.2014, 13:09:42
    #38789209
javajdbc
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Частичный поиск в строке.
ProtonexFULLTEXT не дает нужной определенности в результатах...
К тому же не очень любит короткие, частые, "цифровые" слова...

ФУЛЛТЕХТ:
Минимальная длина -- настраивается
частые слова -- настраиваются
цифровые слова -- не знаю.

Вариант -- сфинкс, кажется есть и другие текстовые поисковики

Вариант -- делать похожий функционал самому:
каждую фразу в таблице разбить на составляюшие
и записать их в отдельную таблицу.
...
Рейтинг: 0 / 0
28.10.2014, 14:31:20
    #38789373
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Частичный поиск в строке.
Protonex, нормализуйте исходные данные, и задача станет элементарной.
...
Рейтинг: 0 / 0
28.10.2014, 15:12:02
    #38789458
alex564657498765453
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Частичный поиск в строке.
ProtonexДано:
1. Входные данные (Поисковая строка с произвольным текстом)
2. БД с таблицей "ключевых слов и фраз"

Требуется найти строки в бд, слова из которых в любом порядке присутствуют во входной строке.

Например, входная строка: "Съешь же еще этих мягких французских булок да выпей чаю".
И таблица:
id | text
----------------------
0 | ночь этих
1 | еще улица
2 | французских вин
3 | аптека
4 | булок мягких французских
5 | еще чаю
6 | кофе
----------------------

И запрос должен вернуть строки 4, 5..
Этакий %like% наизнанку...

я всегда доколупувыюсь до слов. ибо уверен на 100% - сказаное не правильно слово, понимаеться верно, но подсознание в дальнейшем - настроенно уже не верно.

...
я про "Этакий %like% наизнанку"
назовём его правильно

Этакий %like% только множественный!

ЗЫ
скажи - а задача сразу стала лёгкой...
...
Рейтинг: 0 / 0
28.10.2014, 15:35:00
    #38789499
Alex_Ustinov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Частичный поиск в строке.
alex564657498765453,

вот это решеньице... точно в точку... nu u nix i kontrolnye
Код: sql
1.
SELECT * FROM t1 t WHERE 'Съешь же еще этих мягких французских булок да выпей чаю' LIKE CONCAT('%',t.text,'%')
...
Рейтинг: 0 / 0
28.10.2014, 16:02:49
    #38789543
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Частичный поиск в строке.
Alex_Ustinovalex564657498765453,

вот это решеньице... точно в точку...
Да вряд ли...
Protonex1. Входные данные (Поисковая строка с произвольным текстом )
...
Рейтинг: 0 / 0
28.10.2014, 16:56:25
    #38789631
mikhalken
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Частичный поиск в строке.
Akina, произвольный текст решается применением переменной))))
...
Рейтинг: 0 / 0
28.10.2014, 17:26:43
    #38789683
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Частичный поиск в строке.
mikhalkenпроизвольный текст решается применением переменной))))Нет.
Произвольный текст может включать произвольное количество "слов". Что потребует подключения опорной (возможно, генерируемой или служебной) таблицы с количеством записей не менее максимально возможного количества слов в этом тексте. В общем, ни разу оно не просто решается. Хотя да, принципиально такое возможно.
...
Рейтинг: 0 / 0
28.10.2014, 18:27:50
    #38789755
mikhalken
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Частичный поиск в строке.
Akina, произвольная строка, т.е. явно переменной хватит
...
Рейтинг: 0 / 0
28.10.2014, 20:09:03
    #38789830
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Частичный поиск в строке.
Строка в десяток мегабайт вполне подходит под термин "определенная строка". Вот только переменной придётся несладко...
...
Рейтинг: 0 / 0
29.10.2014, 08:04:27
    #38790111
Alex_Ustinov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Частичный поиск в строке.
Akina,

99% задачка из контрольной на ночь "на сообразительность" в SQL. (время восприятия, осознания, принятие решения, ...)
Мы ее "выиграли"... т.е. решили.

Хотя все время задаюсь вопросом - почему с контрольными прут в этот форум... ведь решения чаще специфические, ввиду некоторых ограничений MySQL...
...
Рейтинг: 0 / 0
29.10.2014, 08:13:23
    #38790120
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Частичный поиск в строке.
Alex_UstinovМы ее "выиграли"... т.е. решили.да нихрена не решили
ProtonexТребуется найти строки в бд, слова из которых в любом порядке присутствуют во входной строкеприведённый запрос ни 4, ни 5 запись не вернёт
...
Рейтинг: 0 / 0
29.10.2014, 08:45:01
    #38790147
Protonex
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Частичный поиск в строке.
Думается мне что средствами БД это не решается адекватно.
В силу размеров таблицы (до нескольких сотен записей), мне видится что ее проще считать всю в память приложения, разбить строки на слова, и пословно пройтись по входной строке с поиском подстроки, попутно отмечая какие слова есть, а каких нет...
...
Рейтинг: 0 / 0
29.10.2014, 09:02:24
    #38790168
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Частичный поиск в строке.
ProtonexДумается мне что средствами БД это не решается адекватно.Решается. Адекватно. И просто. Но при условии, что данные нормализованы, а не валяются кучей, как сейчас. СУБД не предназначена для выправления косяков архитектора.
...
Рейтинг: 0 / 0
29.10.2014, 10:56:26
    #38790357
Alex_Ustinov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Частичный поиск в строке.
tanglir,

действительно, не обратил внимания...


так где-то уже это было... недавно
значит опять задачка с факультета прикладной лингвистики...
формализация языка, говорящие-понимающие роботы...
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Частичный поиск в строке. / 17 сообщений из 17, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]