- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу

В 2023 году 36,9% всех DDoS-атак пришлось на сферу финансов
А 24,9% – на сегмент электронной коммерции
Оксана Мамчуева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Сейчас буду на эту тему мучать оракл
Вообще-то СУБД никак не предназначены для использования в качестве поисковых систем - ни mysql, ни Oracle, ни другие базы. Кроме того, они имеют ограничения по объему информации.
Дело даже не в структурах данных и B-деревьях, а в самой организации СУБД - она служит для совершенно других целей. Максимум, что может дать база данных - это просто набор документов, где встретился искомый термин, так как никакой сортировки по релевантности или другим параметрам, подсветки в сниппетах найденных ключевых слов, группировки документов там нет. Конечно, есть отдельные пристройки под поиск, но они не слишком эффективны, чтобы использовать их на гигабайтных объемах.
Vyacheslav Tikhonov,
Ага, значит можно вернуться к исходному вопросу... как, однако, мнения разделились :)
Дело в том, что пользоваться исключительно средствами, предоставляемыми СУБД, никто и не собирается. Ну кто станет пользоваться ТОЛЬКО каким-нибудь LIKE !...хотя, конечно, не исключено, что это будет дополнительное средство в поиске. Сама структура БД должна быть оптимизирована под алгоритм. Другое дело - в каком формате саму БД хранить.
Если я сейчас сяду придумывать свой формат хранения базы, буду ваять его... ну, в общем, долго... и неизвестно, что еще наваяю.
В каком бы формате поисковая база не хранилась, производительность все равно будет относительно невысокой из-за ненужных операций вроде лексического разбора запросов и прочих радостей, из-за которых все проседает.
А не надо ничего придумывать - все уже придумано до нас. :) Любая поисковая система обычно строится на инвертированных файлах , теория хорошо изучена и общедоступна.
На этапе хранения данных и организации поисковой системы никаких вопросов не возникает - принцип у всех один и тот же. Вопросы появляются только тогда, когда нужно ранжировать документы и формировать сниппеты с подсвеченными словами.
Vyacheslav Tikhonov,
Да, но разве инвертированные файлы не строятся на тех самых b-деревьях?
Тем более, необходимы дополнительно алгоритмы сжатия таких файлов...
(сечас вы решите, что я лентяйка, но я просто рассматриваю все "за" и "против"... хотя, да - я лентяйка :D )
Нет, конечно. :) B-деревья - это разновидность деревьев, которые дополнительно в своих узлах содержат какие-то данные, а инвертированные файлы - это списки данных.
Соответственно, отсортированное B-дерево может вырождаться в список. ;)
Необязательно. Чем сильнее сожмете, тем больше можете просадить производительность поиска.
Vyacheslav Tikhonov,
Окей, а разве после добавления не нужна пересортировка (и в список ли)?
И потом, чего-то я не поняла - разве по списку быстрей пройдёшься? Пойду еще раз почитаю доки, но на ваш ответ тоже расчитываю...
Добавлении куда? При индексации формируется специальный словарь - лексикон, содержащий нормальные формы слов.
В лексиконе для каждого слова хранятся координаты в списке, по которым можно быстро получить документы, где слово встречается. Поэтому список служит только для быстрой выборки идентификаторов документов (и сопутствующей информации о координатах слов в тексте). Обычно в него ничего не добавляется и не удаляется, так как он формируется за один раз на этапе индексации.
Vyacheslav Tikhonov,
Статично как-то получается...
Да. Зато максимально быстро.
Vyacheslav Tikhonov,
Если какой-то сегмент Сети (например, все новостные сайты) приходится переиндексировать раз в день (как минимум), что тогда? Притом, что невозможно словарь инфинитивных форм не пополнять в режиме переиндексации...
Э-м-м...Интернет - живность страшно переменчивая...
Everything has it's price, anyway...