Общие > Базы данных

Индексация случайного текста и последующее обновление...

(1/3) > >>

Dj Fly:
Есть полностью непредсказуемый текст..
Каждая запись весит около 40 KB в среднем.
Таких записей около полумиллиона.
И по ним нужно производить поиск.
... :-) Мерзко, да?
Единственным выходом - является создание словаря по тексту...
Но возникает проблема... Этот текст может в случайное время обновиться, и тогда необходимо обновить таблицу связей между словарём и текстом - то есть в какой из записей какие слова хранятся.
Хм... бошку ломаем и ничего дельного в голову не приходит..
база MySQL, то есть триггерочками не побалуешься, да и не совсем это выход здесь. Необходима универсальная обновляемая структура базы с двумя критериями:
1. быстрый поиск.
2. относительно быстрое обновление.

Какие будут идеи?

Макс:
1. mnogosearch
2. если уж делаешь словарь, то обновление связей надо будет делать вручную (на Перл например).

Dj Fly:
1. А многоsearch не помрёт на таком количестве записей? :-)
2. Оно и делается вручную... На РНР...
Только вот как спроектировать структуру базы, ибо в словаре будет несколько детясков тысяч слов... и записей будет около полумиллиона... И таблица связей между ними - многие-ко-многим будет в таком случае весить пару-тройку миллионов записей...

Макс:
Dj Fly
Ну структура таблиц какая ?
ИМХО она будет выглядеть примерно так:
texts_table: - таблица текстов
text_id | text

words_table - таблица слов
word_id | word

relations_table - таблица связей текста со слвами
text_id | word_id

после определенного этапа таблица words_table будет обновляться очень редко (в ней уже будет много слов).
И обновляться будет только таблица relations_table. Она имеет фиксированную ширину и два числовых поля. С такими таблицами mysql работает очень быстро

Думаю если тексты в 40 кб хорошо почистить от всяких дублирующих слов, тегов то слов там будет не так много

Макс:
насчет mnogosearch - не думаю что для него это много

Навигация

[0] Главная страница сообщений

[#] Следующая страница

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 
Перейти к полной версии