Подбор СУБД

VT
На сайте с 27.01.2001
Offline
130
#11
Не помрет, но будет долго ломаться. Пробовала. Результат неутешителен.
Сейчас буду на эту тему мучать оракл

Вообще-то СУБД никак не предназначены для использования в качестве поисковых систем - ни mysql, ни Oracle, ни другие базы. Кроме того, они имеют ограничения по объему информации.

Дело даже не в структурах данных и B-деревьях, а в самой организации СУБД - она служит для совершенно других целей. Максимум, что может дать база данных - это просто набор документов, где встретился искомый термин, так как никакой сортировки по релевантности или другим параметрам, подсветки в сниппетах найденных ключевых слов, группировки документов там нет. Конечно, есть отдельные пристройки под поиск, но они не слишком эффективны, чтобы использовать их на гигабайтных объемах.

lagif
На сайте с 15.12.2004
Offline
30
#12

Vyacheslav Tikhonov,

Ага, значит можно вернуться к исходному вопросу... как, однако, мнения разделились :)

Дело в том, что пользоваться исключительно средствами, предоставляемыми СУБД, никто и не собирается. Ну кто станет пользоваться ТОЛЬКО каким-нибудь LIKE !...хотя, конечно, не исключено, что это будет дополнительное средство в поиске. Сама структура БД должна быть оптимизирована под алгоритм. Другое дело - в каком формате саму БД хранить.

Если я сейчас сяду придумывать свой формат хранения базы, буду ваять его... ну, в общем, долго... и неизвестно, что еще наваяю.

Это тоже пройдет...
VT
На сайте с 27.01.2001
Offline
130
#13
Сама структура БД должна быть оптимизирована под алгоритм. Другое дело - в каком формате саму БД хранить.

В каком бы формате поисковая база не хранилась, производительность все равно будет относительно невысокой из-за ненужных операций вроде лексического разбора запросов и прочих радостей, из-за которых все проседает.

Если я сейчас сяду придумывать свой формат хранения базы, буду ваять его... ну, в общем, долго... и неизвестно, что еще наваяю.

А не надо ничего придумывать - все уже придумано до нас. :) Любая поисковая система обычно строится на инвертированных файлах , теория хорошо изучена и общедоступна.

На этапе хранения данных и организации поисковой системы никаких вопросов не возникает - принцип у всех один и тот же. Вопросы появляются только тогда, когда нужно ранжировать документы и формировать сниппеты с подсвеченными словами.

lagif
На сайте с 15.12.2004
Offline
30
#14

Vyacheslav Tikhonov,

Да, но разве инвертированные файлы не строятся на тех самых b-деревьях?

Тем более, необходимы дополнительно алгоритмы сжатия таких файлов...

(сечас вы решите, что я лентяйка, но я просто рассматриваю все "за" и "против"... хотя, да - я лентяйка :D )

VT
На сайте с 27.01.2001
Offline
130
#15
Да, но разве инвертированные файлы не строятся на тех самых b-деревьях?

Нет, конечно. :) B-деревья - это разновидность деревьев, которые дополнительно в своих узлах содержат какие-то данные, а инвертированные файлы - это списки данных.

Соответственно, отсортированное B-дерево может вырождаться в список. ;)

Тем более, необходимы дополнительно алгоритмы сжатия таких файлов

Необязательно. Чем сильнее сожмете, тем больше можете просадить производительность поиска.

lagif
На сайте с 15.12.2004
Offline
30
#16

Vyacheslav Tikhonov,

отсортированное B-дерево может вырождаться в список

Окей, а разве после добавления не нужна пересортировка (и в список ли)?

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

VT
На сайте с 27.01.2001
Offline
130
#17
Окей, а разве после добавления не нужна пересортировка (и в список ли)?

Добавлении куда? При индексации формируется специальный словарь - лексикон, содержащий нормальные формы слов.

И потом, чего-то я не поняла - разве по списку быстрей пройдёшься

В лексиконе для каждого слова хранятся координаты в списке, по которым можно быстро получить документы, где слово встречается. Поэтому список служит только для быстрой выборки идентификаторов документов (и сопутствующей информации о координатах слов в тексте). Обычно в него ничего не добавляется и не удаляется, так как он формируется за один раз на этапе индексации.

lagif
На сайте с 15.12.2004
Offline
30
#18

Vyacheslav Tikhonov,

Статично как-то получается...

VT
На сайте с 27.01.2001
Offline
130
#19
Статично как-то получается

Да. Зато максимально быстро.

lagif
На сайте с 15.12.2004
Offline
30
#20

Vyacheslav Tikhonov,

Если какой-то сегмент Сети (например, все новостные сайты) приходится переиндексировать раз в день (как минимум), что тогда? Притом, что невозможно словарь инфинитивных форм не пополнять в режиме переиндексации...

Э-м-м...Интернет - живность страшно переменчивая...

Everything has it's price, anyway...

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий