【OpenGrok代码搜索引擎】一、OpenGrok简介

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

大家好,又见面了,我是你们的朋友全栈君。

一、介绍

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. 可拓展性强,可为新的编程语言和新的版本控制工具编写插件;

三、主要组成部分

【OpenGrok代码搜索引擎】一、OpenGrok简介

 

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简介

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/131899.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • POJ 2996 Help Me with the Game (模拟)

    POJ 2996 Help Me with the Game (模拟)题目链接:http://poj.org/problem?id=2996POJ训练计划中的模拟都是非常棒的模拟,也非常有代表性。这个题讲的是给你一个国际象棋棋盘,敲代码打印出黑白两方的棋子。以及棋子的坐标。可是须要注意的国际棋盘的坐标问题例如以下图这个国际棋盘能够看到数字轴和字母轴的方向以及增减关系。所以在这个题的统计的时候须要进行坐标转换。由于已经做过类似的方法…

    2022年8月12日
    4
  • velocity 语法 null[通俗易懂]

    velocity 语法 null[通俗易懂]相信这个问题是很多使用Velocity的朋友所经常碰到的,大家可能非常期望下面这样的代码能够运行:  #if($foo==null)  …  #end  实际上这段代码会报错。这是因为Velocity中对null的支持比较特别。总统上说,判断是否为null有下面几种方法:  1.#if(!$foo)判断$foo为空,判断非空为#if($foo)  2.使用#ifnull()…

    2022年7月14日
    19
  • 随便写写「建议收藏」

    随便写写「建议收藏」随便写写

    2022年4月22日
    41
  • sigterm信号_一文吃透 PHP 进程信号处理

    sigterm信号_一文吃透 PHP 进程信号处理背景前两周老大给安排了一个任务,写一个监听信号的包。因为我司的项目是运行在容器里边的,每次上线,需要重新打包镜像,然后启动。在重新打包之前,Dokcer会先给容器发送一个信号,然后等待一段超时时间(默认10s)后,再发送SIGKILL信号来终止容器现在有一种情况,容器中有一个常驻进程,该常驻进程的任务是不断的消费队列里的消息。假设现在要上线,需要关杀掉容器,Docker给容器里跑的常驻进程发送一个…

    2022年10月23日
    0
  • oracle 19c ora-01017,Oracle 19c RMAN 连接PDB ORA-01017 错误解决方法

    oracle 19c ora-01017,Oracle 19c RMAN 连接PDB ORA-01017 错误解决方法在Oracle19c中,RMAN连接PDB时可能会出现ORA-01017的错误,如下:[dave@www.cndba.cnadmin]$rmantarget'”dave/dave@daveassysbackup”‘RecoveryManager:Release19.0.0.0.0-ProductiononWedFeb1716:33:292021Version…

    2022年5月31日
    103
  • File中createNewFile()和createTempFile()区别[通俗易懂]

    1、createTempFile():FilesampleDir=newFile(Environment.getExternalStorageDirectory().getAbsolutePath()+”/FMRecording”);mSampleFile=File.createTempFile(“FMRecording”,”.m4a”,sampleDir);主要的

    2022年4月11日
    262

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号