|
8 / 8 / 3
Регистрация: 25.03.2015
Сообщений: 145
|
||||||
Ускорение работы скрипта-синонимайзера24.07.2017, 21:33. Показов 1140. Ответов 26
Метки нет (Все метки)
Есть база синонимов в .txt виде
В файле 1,2 миллиона строк, соответственно, очень долго, может как-то оптимизировать? Какие варианты есть?
0
|
||||||
| 24.07.2017, 21:33 | |
|
Ответы с готовыми решениями:
26
Ускорение работы php скрипта
|
|
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
|
|
| 24.07.2017, 21:51 | |
|
0
|
|
|
8 / 8 / 3
Регистрация: 25.03.2015
Сообщений: 145
|
|
| 24.07.2017, 22:15 [ТС] | |
|
Да я думал об этом, но как быть с такими строками:
практические|утилитарные|практичные|факт ические Как делать поиск? Вообще слабо понимаю.
0
|
|
|
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
|
|||||||||||||||||
| 24.07.2017, 22:28 | |||||||||||||||||
1
|
|||||||||||||||||
|
8 / 8 / 3
Регистрация: 25.03.2015
Сообщений: 145
|
|
| 24.07.2017, 22:35 [ТС] | |
|
Да, спасибо, вот это то что мне нужно было. Гениальное - просто!
0
|
|
|
8 / 8 / 3
Регистрация: 25.03.2015
Сообщений: 145
|
||
| 30.07.2017, 11:25 [ТС] | ||
|
0
|
||
|
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
|
|||
| 30.07.2017, 11:45 | |||
|
Что значит
Поиск по индексному столбцу - быстрая операция Еще возможно стоит обратить внимание на такие технологии, как sphinx и elasticsearch. Возможно они могут поиск по синонимам, но точно не скажу.
0
|
|||
|
8 / 8 / 3
Регистрация: 25.03.2015
Сообщений: 145
|
|
| 30.07.2017, 14:56 [ТС] | |
|
Да в том то и дело что фраза в бд есть, вот покажу пример: " а роза упала на лапу Азора" и дальше текст, вот как же мне вытащить именно фразу, а не первое слово, я же разбиваю функцией explode по пробелам и знакам пунктуации, но таким образом фразы не найти.
0
|
|
|
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
|
||
| 30.07.2017, 16:00 | ||
|
0
|
||
|
8 / 8 / 3
Регистрация: 25.03.2015
Сообщений: 145
|
||
| 30.07.2017, 20:20 [ТС] | ||
|
"Владимир Путин подписал закон о запрете анонимайзеров Теперь в России нельзя будет использовать технологии, позволяющие получить доступ к сайтам, заблокированным Роскомнадзором" По какому началу искать? Вот было бы так просто. По словам то всё предельно ясно, просто раздели на слова. А тут же что будет фразой? "Владимир Путин" или "Владимир Путин подписал закон", или вообще не весь текст, если бы Вы могли привести пример хотя бы на тексте, был бы благодарен. P.S. Новость поразила.
0
|
||
|
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
|
||
| 30.07.2017, 20:39 | ||
|
Можно искать все фразы начинающиеся с первого слова, если найдена 1 фраза - значит она и есть. Если несколько то добавлять к поиску второе слово и т.д.
0
|
||
|
12 / 11 / 8
Регистрация: 30.11.2015
Сообщений: 422
|
|
| 30.07.2017, 21:02 | |
|
justtroodi, LIKE через БД, ответ прост, не благодарите
через цикл гнать и LIKE составить запрос в БД
0
|
|
|
8 / 8 / 3
Регистрация: 25.03.2015
Сообщений: 145
|
|
| 30.07.2017, 21:04 [ТС] | |
|
Ну блин, дело в оптимизации же, я там читаю 1,200,000 строк и каждую фразу или слово проверяю на вхождение в тексте. А в таблице 4,000,000 записей, значит если делать также, то в цикле их прогнать, оптимальности нет же. Все же 4 млн записей нехило так пройти-то и индексы не спасут.
0
|
|
|
12 / 11 / 8
Регистрация: 30.11.2015
Сообщений: 422
|
|
| 30.07.2017, 21:10 | |
|
Индексы не спасут, условие на совпадение, а если совпадение есть, тогда строим запрос в БД
Добавлено через 2 минуты ну и базу проиндексировать разумеется, только так, и все через цикл гнать foreach и LIKE строить запросы, отдавать что нужно, быстрее не получится на PHP, на питоне можно быстрее или перле, тогда Вам в другой раздел Добавлено через 1 минуту Поднимаем сначала файл, потом берем по строчке, потом в цикле через LIKE и если есть совпадение отдаем.
0
|
|
|
8 / 8 / 3
Регистрация: 25.03.2015
Сообщений: 145
|
|
| 30.07.2017, 21:17 [ТС] | |
|
Ну я думаю, что проще будет сделать так: что я знаю что фразы максимум из 3х слов в базе, поэтому просто разбиваем текст по 3 слова, 2, 1, если не находится.
0
|
|
|
12 / 11 / 8
Регистрация: 30.11.2015
Сообщений: 422
|
||||||
| 30.07.2017, 21:31 | ||||||
Добавлено через 4 минуты нее, Вы не ошибаетесь, попробуйте как я показал, по сути с таким принципом даже БД не нужна и индексация, все равно все будет виснуть если отдавать результат в миллион строчек, у меня код по такому принципу обрабатывает на доли секунды 1000 строк, ну код сам себя пишет, чуть логика другая, но суть одна, попробуйте. Будет находить любое вхождение в поле. Добавлено через 41 секунду Не, я чуть не так выразился, не отдавать, а перебирать, так точнее) Добавлено через 3 минуты но используя explode Вы будете еще нагружать систему разбирая массив, тут explode не надо Добавлено через 2 минуты если надо по каждому полю пройтись допишите and `key` LIKE ну и код тогда чуть переписать надо explode тогда будет разбирать $stroka, там же все через цикл, ну и сравнение Добавлено через 1 минуту даже еще точнее, а простая проверка на результат с базы
0
|
||||||
|
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
|
||
| 30.07.2017, 21:35 | ||
|
0
|
||
|
12 / 11 / 8
Регистрация: 30.11.2015
Сообщений: 422
|
|
| 30.07.2017, 21:50 | |
|
Верно, два тем более цикла будет использоваться, надо как-то упростить
Добавлено через 3 минуты Нагрузка на БД, тут тогда надо мощное железо, ну или иксы минимум, попробуйте на Debian'e запустить или арче, центосе, но это будет мощно если запустите на арче)) еще вариант nginx тоже ускорит работу, проще дебиан в связке и nginx и MariaDB Добавлено через 1 минуту Мускуль просто слаб по сравнению с Марией и разрабы постоянно косячат( Добавлено через 5 минут А индексация базы ускоряет работу, надо перебирать все что в БД от ида до результата нужного. Коду проще работать с цифрами, чем с буквами. Добавлено через 1 минуту Он будет идти по цифрам, то есть по иду, найдя нужный результат вернет что имеется, вот и вся задачка)) Добавлено через 1 минуту И человек спросил, как найти определенную фразу, а значит LIKE, а не начало
0
|
|
|
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
|
||||||
| 30.07.2017, 21:59 | ||||||
|
Еще раз повторю свое решения изходя из моего понимания проблемы
0
|
||||||
|
12 / 11 / 8
Регистрация: 30.11.2015
Сообщений: 422
|
|||||
| 30.07.2017, 22:07 | |||||
|
0
|
|||||
| 30.07.2017, 22:07 | |
|
Помогаю со студенческими работами здесь
20
Human Emulator: ускорение работы действий Оптимизация и ускорение работы скрипта jquery Ускорение скрипта Ускорение работы компьютера, а так же работы Интернета (u22) Ускорение работы компьютера, а так же работы Интернета Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога
Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
|
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование
. \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json>
Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом.
# Check if. . .
|
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так:
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347
Основана на STM32F303RBT6.
На борту пять. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|