|
|
|
Частичный поиск в строке.
|
|||
|---|---|---|---|
|
#18+
Дано: 1. Входные данные (Поисковая строка с произвольным текстом) 2. БД с таблицей "ключевых слов и фраз" Требуется найти строки в бд, слова из которых в любом порядке присутствуют во входной строке. Например, входная строка: "Съешь же еще этих мягких французских булок да выпей чаю". И таблица: id | text ---------------------- 0 | ночь этих 1 | еще улица 2 | французских вин 3 | аптека 4 | булок мягких французских 5 | еще чаю 6 | кофе ---------------------- И запрос должен вернуть строки 4, 5.. Этакий %like% наизнанку... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2014, 18:36:22 |
|
||
|
Частичный поиск в строке.
|
|||
|---|---|---|---|
|
#18+
ProtonexДано: 1. Входные данные (Поисковая строка с произвольным текстом) 2. БД с таблицей "ключевых слов и фраз" Требуется найти строки в бд, слова из которых в любом порядке присутствуют во входной строке. Например, входная строка: "Съешь же еще этих мягких французских булок да выпей чаю". И таблица: id | text ---------------------- 0 | ночь этих 1 | еще улица 2 | французских вин 3 | аптека 4 | булок мягких французских 5 | еще чаю 6 | кофе ---------------------- И запрос должен вернуть строки 4, 5.. Этакий %like% наизнанку... RTFM: MySQL & FULLTEXT ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2014, 19:16:21 |
|
||
|
Частичный поиск в строке.
|
|||
|---|---|---|---|
|
#18+
FULLTEXT не дает нужной определенности в результатах... К тому же не очень любит короткие, частые, "цифровые" слова... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2014, 11:58:18 |
|
||
|
Частичный поиск в строке.
|
|||
|---|---|---|---|
|
#18+
ProtonexFULLTEXT не дает нужной определенности в результатах... К тому же не очень любит короткие, частые, "цифровые" слова... ФУЛЛТЕХТ: Минимальная длина -- настраивается частые слова -- настраиваются цифровые слова -- не знаю. Вариант -- сфинкс, кажется есть и другие текстовые поисковики Вариант -- делать похожий функционал самому: каждую фразу в таблице разбить на составляюшие и записать их в отдельную таблицу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2014, 13:09:42 |
|
||
|
Частичный поиск в строке.
|
|||
|---|---|---|---|
|
#18+
Protonex, нормализуйте исходные данные, и задача станет элементарной. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2014, 14:31:20 |
|
||
|
Частичный поиск в строке.
|
|||
|---|---|---|---|
|
#18+
ProtonexДано: 1. Входные данные (Поисковая строка с произвольным текстом) 2. БД с таблицей "ключевых слов и фраз" Требуется найти строки в бд, слова из которых в любом порядке присутствуют во входной строке. Например, входная строка: "Съешь же еще этих мягких французских булок да выпей чаю". И таблица: id | text ---------------------- 0 | ночь этих 1 | еще улица 2 | французских вин 3 | аптека 4 | булок мягких французских 5 | еще чаю 6 | кофе ---------------------- И запрос должен вернуть строки 4, 5.. Этакий %like% наизнанку... я всегда доколупувыюсь до слов. ибо уверен на 100% - сказаное не правильно слово, понимаеться верно, но подсознание в дальнейшем - настроенно уже не верно. ... я про "Этакий %like% наизнанку" назовём его правильно Этакий %like% только множественный! ЗЫ скажи - а задача сразу стала лёгкой... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2014, 15:12:02 |
|
||
|
Частичный поиск в строке.
|
|||
|---|---|---|---|
|
#18+
alex564657498765453, вот это решеньице... точно в точку... nu u nix i kontrolnye Код: sql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2014, 15:35:00 |
|
||
|
Частичный поиск в строке.
|
|||
|---|---|---|---|
|
#18+
Alex_Ustinovalex564657498765453, вот это решеньице... точно в точку... Да вряд ли... Protonex1. Входные данные (Поисковая строка с произвольным текстом ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2014, 16:02:49 |
|
||
|
Частичный поиск в строке.
|
|||
|---|---|---|---|
|
#18+
Akina, произвольный текст решается применением переменной)))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2014, 16:56:25 |
|
||
|
Частичный поиск в строке.
|
|||
|---|---|---|---|
|
#18+
mikhalkenпроизвольный текст решается применением переменной))))Нет. Произвольный текст может включать произвольное количество "слов". Что потребует подключения опорной (возможно, генерируемой или служебной) таблицы с количеством записей не менее максимально возможного количества слов в этом тексте. В общем, ни разу оно не просто решается. Хотя да, принципиально такое возможно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2014, 17:26:43 |
|
||
|
Частичный поиск в строке.
|
|||
|---|---|---|---|
|
#18+
Akina, произвольная строка, т.е. явно переменной хватит ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2014, 18:27:50 |
|
||
|
Частичный поиск в строке.
|
|||
|---|---|---|---|
|
#18+
Строка в десяток мегабайт вполне подходит под термин "определенная строка". Вот только переменной придётся несладко... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2014, 20:09:03 |
|
||
|
Частичный поиск в строке.
|
|||
|---|---|---|---|
|
#18+
Akina, 99% задачка из контрольной на ночь "на сообразительность" в SQL. (время восприятия, осознания, принятие решения, ...) Мы ее "выиграли"... т.е. решили. Хотя все время задаюсь вопросом - почему с контрольными прут в этот форум... ведь решения чаще специфические, ввиду некоторых ограничений MySQL... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2014, 08:04:27 |
|
||
|
Частичный поиск в строке.
|
|||
|---|---|---|---|
|
#18+
Alex_UstinovМы ее "выиграли"... т.е. решили.да нихрена не решили ProtonexТребуется найти строки в бд, слова из которых в любом порядке присутствуют во входной строкеприведённый запрос ни 4, ни 5 запись не вернёт ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2014, 08:13:23 |
|
||
|
Частичный поиск в строке.
|
|||
|---|---|---|---|
|
#18+
Думается мне что средствами БД это не решается адекватно. В силу размеров таблицы (до нескольких сотен записей), мне видится что ее проще считать всю в память приложения, разбить строки на слова, и пословно пройтись по входной строке с поиском подстроки, попутно отмечая какие слова есть, а каких нет... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2014, 08:45:01 |
|
||
|
Частичный поиск в строке.
|
|||
|---|---|---|---|
|
#18+
ProtonexДумается мне что средствами БД это не решается адекватно.Решается. Адекватно. И просто. Но при условии, что данные нормализованы, а не валяются кучей, как сейчас. СУБД не предназначена для выправления косяков архитектора. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2014, 09:02:24 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=38790168&tid=1834012]: |
0ms |
get settings: |
5ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
38ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
66ms |
get tp. blocked users: |
1ms |
| others: | 200ms |
| total: | 346ms |

| 0 / 0 |
