Настройка легко доступной для поиска базы данных MySQL для поиска по словам - PullRequest
1 голос
/ 26 июня 2011

У меня есть ок.2 ТБ текста, который я хочу превратить в доступную для поиска базу данных, где я обычно буду искать, чтобы увидеть, существуют ли в базе данных выражения 2-4 слова (например, я мог бы выполнить поиск, чтобы увидеть, есть ли фраза «это четыре слова»)или «три последовательных слова» появляются в любом месте текста).

Эти поиски будут происходить очень часто, поэтому очень важно, чтобы я настроил базу данных так, чтобы она использовала как можно меньше обработки.Я также хотел бы максимально сократить накладные расходы, чтобы уменьшить количество серверов баз данных, которые мне понадобятся.

У кого-нибудь есть предложения по настройке этой базы данных?

Например, я думал о создании связанного списка, который был организован | id | word1 | word2 |(со всеми тремя ключами существ), поэтому для выражения «это четыре слова» я сначала поискал «это есть», затем я бы поискал «четыре», проверил, совпадают ли какие-либо совпадения с «эти есть».1 идентификатор ниже, чем «являются четырьмя», а затем сделать то же самое для «четырех слов».Но я думаю, что должен быть более эффективный способ сделать это.

РЕДАКТИРОВАТЬ: ЕДИНСТВЕННАЯ вещь, для которой я буду использовать эту базу данных, выполняет эти 2-4 слова поиска точного соответствия, и это предназначено для внутреннегоиспользовать.Все, что я хочу, чтобы эта база данных была в состоянии сделать, это сообщить мне, если где-то во всех моих файлах информации есть выражение из 2-4 слов, и ничего более.

1 Ответ

2 голосов
/ 26 июня 2011

Есть ли у кого-нибудь предложения по настройке этой базы данных?

Лично я бы сначала исключил возможность использования полнотекстового поиска MySQL , и каждый Open Source, полнотекстовый поисковик.В Википедии есть список поисковых систем с открытым исходным кодом .Я бы также исключил использование пользовательского поиска Google .Черт, я бы даже подумал о коммерческом продукте, прежде чем попытаться развернуть свой собственный.

По крайней мере, изучение их кода может дать вам некоторые идеи о структуре индекса.

Если выВы думаете о создании связанного списка в SQL, возможно, вы захотите создать крошечный тест, прежде чем углубляться в него.Я не думаю, что это будет практично, но я могу ошибаться.

Требуется много работы, чтобы действительно хорошо выполнить полнотекстовый поиск.(Подумайте о поисках близости - найдите «есть» в 3 словах «многих способов потерпеть неудачу».) Изобретая это колесо, возможно, не лучшее использование вашего времени.

...