Быстрый поиск по регулярному выражению - PullRequest
1 голос
/ 08 ноября 2011

Как можно было бы каким-то образом индексировать 50-100 ГБ строк текста и затем выполнять быстрый поиск по регулярному выражению?По крайней мере, быстрее, чем идти строка за строкой.Шаблон регулярных выражений не всегда одинаков, поэтому его нельзя учитывать при построении индекса.

Возможно ли достичь чего-то подобного с помощью Lucene?Я знаю, что это возможно с деревьями суффиксов, но индекс занимает слишком много памяти (намного больше, чем эти 100 ГБ).

1 Ответ

1 голос
/ 08 ноября 2011

Главное, что вам нужно сделать, это заранее определить общие условия поиска, а затем индексировать на основе этого.

Например, возможно, вы ожидаете, что будет много поисков строк, начинающихся с "Foo". Затем вы можете запустить этот поиск заранее и сохранить список строк, начинающихся с «Foo». Затем, если кто-то ищет строки, начинающиеся с «Foobar», у вас уже есть суженное подмножество строк для поиска.

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

...