OpenGrok代码搜索引擎一OpenGrok简介

Posted 高桐@BILL

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了OpenGrok代码搜索引擎一OpenGrok简介相关的知识,希望对你有一定的参考价值。

一、介绍

OpenGrok是一个快速的、非常有用的代码搜索和交叉引用引擎。它由Java语言编写而成。它可以帮助你快速的搜索,交叉引用和索引你的代码树。它可以很好的识别多种应用程序文件格式和代码版本控制工具。

官网请参考:

OpenGrok by OpenGrok

 https://github.com/oracle/opengrok

二、功能介绍

  1. 可以搜索全文本,定义,符号,路径和修改记录(这个很重要,可以帮助我们回溯某一笔修改);
  2. 可以将搜索限制在某个子树(简单来说就是可以将搜索范围限制在某个子目录下)
  3. 可以增量更新索引(也就是说)
  4. 支持google搜索类似搜索语法
  5. 支持搜索某个时间段内被修改的文件
  6. 支持使用通配符比如*或?
  7. 支持在搜索结果中显示匹配的行
  8. 为版本控制工具(如Mercurial,CVS,SVN,SCCS和TeamWare)提供了只读的web接口,包括文件修改提交记录/任何两个版本的文件差异(像udiffs和sdiffs)
  9. 支持在线交叉引用查询,包括语法高亮,可通过CSS进行高度定制化的UI显示
  10. 可拓展性强,可为新的编程语言和新的版本控制工具编写插件;

三、主要组成部分

 

3.1 org.opengrok.analysis

负责分析程序,源文件,zip,tar,文档(包括man page,xml,html),图片等。

3.2 org.opengrok.index

创建和更新Lucene索引(开源的全文搜索引擎),递归地沿着目录树向下移动。

3.3 org.opengrok.search

提供搜索结果的界面,文本匹配等。

3.4 org.opengrok.history

对源码版本控制器修订历史的抽象,简单来讲将版本控制器中的源码的修改历史进行同步展示;

3.5 org.opengrok.web

webapp模块,主要是用于部署在web服务器上,如tomcat等。

四、竞品对比矩阵 

以上是关于OpenGrok代码搜索引擎一OpenGrok简介的主要内容,如果未能解决你的问题,请参考以下文章

OpenGrok代码搜索引擎四OpenGrok使用指南

如何限制对 OpenGrok 结果的访问?

请问lucene可以用来做日志分析和日志故障定位吗?

lucene翻译?(如何翻译如下语句?)

Lucene是啥?

各位大神,lucene分词后,怎么按着词频倒序排列