Задать вопрос

Алгоритм работы работы индекса с использованием wildcards?

Мне интересно, как моя IDE ищет абстрактный текст типа englishName( nullable:false, blank:false) во всех файлах всех проектов, причем так быстро.

Видимо, это частный случай поиска с использованием индекса и wildcards: *search_data*.


Буду рад объяснению принципа работы такого индекса.
  • Вопрос задан
  • 2843 просмотра
Подписаться 4 Оценить Комментировать
Решения вопроса 1
@egorinsk
Что за ИДЕ? Эклипс вроде бы ищет тупо перебором файлов, а если у вас много памяти, эти файлы постепенно оседают в кеше и поиск фактически ведется в памяти.

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

Понятно, что, к примеру, гугловцев такой примитивный подход не устроил. Потому, когда они делали в google code поиск по регулярным выражениям, они придумали свой алгоритм построения индекса: один из вариантов построения триграмного индекса для поиска по регулярным выражениям: swtch.com/~rsc/regexp/regexp4.html Можете почитать, если интересно.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы