如何使用ElasticSearch索引源代码

15

我需要在JavaScript源文件上提供全文搜索并突出显示结果。

我的问题是,在现有的ElasticSearch分词器和分析器中,哪种组合最适合这种情况?

4个回答

5
有趣的问题,但我不知道有现成的解决方案。你可以使用WordDelimiter分词器,因为你可以指定例如下划线被处理为数字,然后hello_world(或helloWorld如果启用了驼峰命名)这样的函数可以通过hello或world进行搜索。
但我怀疑结果是否充分...你将不得不自己实现源代码分析器,或者使用提取语法树的代码来将方法名称和主体索引到不同的字段中。请参考使用Lucene搜索Java代码JSShaper网站。

作为一名开发人员在搜索源代码时,您是否真的希望只使用“hello”或“world”就能找到hello_world或helloWorld?至少在我们的情况下,我们在所有代码库中都使用弹性搜索,并且通常会跨所有库搜索特定方法的特定拼写 - 例如,在更新它们都使用的核心框架时。 - Svemir Brkic

1
你可以使用附件类型插件将文件加载到Elasticsearch中,并让其索引文件。它可以处理文件的元数据并索引文件的内容。 GitHub页面包括有关如何突出显示搜索文档的信息。

0

除非你想将其作为服务提供给他人,否则我建议你在Eclipse中安装InstaSearch插件;该插件创建了Lucene索引并为您提供即时结果。


0

这种索引功能是ElasticSearch配置MS Azure DevOps Server的一部分。虽然,我不知道它是如何完成的 :/


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接