Как индексировать исходный код с помощью ElasticSearch

Мне нужно предоставить полный текстовый поиск в исходных файлах javascript и выделение результатов.

Мой вопрос в том, какая комбинация существующих токенизаторов и анализаторов ElasticSearch была бы лучше всего для этого?

Ответ 1

Интересный вопрос, но я не знаю о готовом решении. Вы можете использовать токенизатор WordDelimiter, так как вы можете указать, например, символ подчеркивания, который будет обрабатываться как цифра, а затем функции hello_world (или helloWorld, если включен camelcase) будут доступны для поиска через hello или world.

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

Ответ 2

Вы можете использовать плагин типа вложения для загрузки файлов в Elasticsearch и дать ему возможность индексировать файлы. Он может обрабатывать метаданные для файлов и индексировать содержимое файлов.

Страница github содержит информацию о том, как сделать выделение поисковых документов.

Ответ 3

Если вы не хотите раскрывать это как услугу кому-либо, я бы рекомендовал вам установить плагин InstaSearch в eclipse; этот плагин создает индекс lucense и дает мгновенные результаты.