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

【OpenGrok代码搜索引擎】四、OpenGrok使用指南三、智能窗口四、差异跳转

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

一、使用案例

1.1 查询函数”start_kernel”的定义

def:start_kernel

案例如下:

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

1.2 查询路径”sound/core”路径下使用函数”sprintf”

refs:sprintf  path:sound\/core\/

案例如下:

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

1.3 查询变量”cmdline”赋值

“command_line =”

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

1.4 查询Makefiles,二进制文件“init-mm.o”构建信息 

“init-mm.o” path:Makefile

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

1.5 查询字符“command line” 

“command line” 

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

1.6 使用通配符查询字符串”strart_*”

start_*

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

 1.7 条件查询文件

如从路径/usr/perl查询perl文件,但不查询路径为”/usr/bin/perl”下的perl文件。

-“arm/lib/Makefile” +“lib/Makefile”

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

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

 1.8 查找所有包含”. c”的文件

“. c”

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

 1.9 查找以“ma”开头的文件

path:/ma[a-zA-Z]*/

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

 1.10 查找所有c文件中的main函数 

main type:c

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

二、使用技巧

一次查询就是一系列的子句组合,一个子句的前缀可能包括如下:

  • “+”表示查询子句内容是必须的;形如+“clause”
  • “-”表示查询子句内容是忽略的;形如-“clause”
  • “:”表示查询子句针对一个域的搜索;形如文件类型type:c

一个子句也有可能是下面这些形式:

  • 一个词语,表示查询所有包含该词语的文档;形如“term”
  • 一个词组;表示查询所有包含该词组的文档,形如“hello term”
  • 嵌套或组合查询;如通过“+”“-”的组合或者形如”term1″”term2″…
  • 逻辑运算查询;opengrok支持AND(&&),”+”,OR(||),NOT(!),”-“.注意,这些运算符必须要大写。

一个字句也支持诸如正则表达式,通配符,模糊查询,近似查询,范围搜索等。

  • 正则表达式;形如/[mb]an/,将会查询形如man或ban的字符等。
  • 通配符;形如”te?t”,将会擦汗寻到text,test等。
  • 模糊查询;使用“~”进行模糊或近似查询,例如res~;
  • 范围查询;

2.1 特殊字符

opengrok在查询语法中支持转义字符;这些特殊字符如“+ – && || ! ( ) { } [ ] ^ ” ~ * ? : \ /”。转义这些字符需要使用反斜杠\。例如搜索(1+1):2,完整的搜索字符串如下:

\(1\+\)\:2

需要特别注意的是索引字符主要是数字,字母和下划线,一个字符是无法进行索引。

2.2 域

2.2.1 full

全量搜索,包括字符串,数字,标识符等。

2.2.2 defs

定义搜索,主要对变量,函数进行查询等。 

2.2.3 refs

引用搜索,主要指符号如函数,类,变量。

2.2.4 path

资源文件路径搜索,如”src/mypath”。

2.2.5 hist

历史记录,日志注释搜索

2.26 type

类型查搜索,指定查询的文件,其中ada=Ada, asm=Asm, bzip2=Bzip(2), c=C, clojure=Clojure, csharp=C#, cxx=C++, eiffel=Eiffel, elf=ELF, erlang=Erlang, file=Image file, fortran=Fortran, golang=Golang, gzip=GZIP, haskell=Haskell, hcl=HCL, jar=Jar, java=Java, javaclass=Java class, javascript=JavaScript, json=Json, kotlin=Kotlin, lisp=Lisp, lua=Lua, mandoc=Manual pages, pascal=Pascal, perl=Perl, php=PHP, plain=Plain Text, plsql=PL/SQL, powershell=PowerShell script, python=Python, r=R, ruby=Ruby, rust=Rust, scala=Scala, sh=Shell script, sql=SQL, swift=Swift, tar=Tar, tcl=Tcl, terraform=Terraform, troff=Troff, typescript=TypeScript, uuencode=UUEncoded, vb=Visual Basic, verilog=Verilog, xml=XML, zip=Zip。

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

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

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


相关推荐

  • 启动docker镜像命令_什么是docker镜像

    启动docker镜像命令_什么是docker镜像docker启动//加载镜像文件dockerload-imec2.tar//查看是否有mec:v2镜像dockerimagels//rundockerrun-itdmec:v2//查看容器iddockerps//执行dockerexec-it镜像idbash将文件从宿主机拷贝到docker里在宿主机里面执:dockercp宿主机中要拷贝的文件名及其路径容器名:要拷贝到容器里面对应的路径从docker里面拷文件到宿主机在宿主机

    2022年9月22日
    0
  • pytorch中tensor转numpy

    pytorch中tensor转numpycputensor转numpy:#假定a为tensora.numpy()gputensor转numpy:gpu下的tensor不能直接转numpy,需要先转到cputensor后再转为numpya.cpu().numpy()注:若tensor带有梯度,以上述方式转换时会报错:RuntimeError:Can’tcallnumpy()onTensorthatrequiresgrad.Usetensor.detach().numpy()instead.

    2022年10月19日
    0
  • apache 负载均衡 超时设置_apache负载均衡配置

    apache 负载均衡 超时设置_apache负载均衡配置最近因为新疆移动项目的要求,必须要用负载均衡来实现HTTP请求,没办法,我这个人一般是有压力的环境下才会好好学习,所以只有老实的自己来边学边写了。   其实,我们在平时经常听说集群这个名词,但是真正知道的又有几个呢,恩,好了,不讲废话了,我就先给大家扫盲吧,当然,我讲的不一定是对的,我就把我自己知道的讲出来,集群目前分3类吧,科学集群、高可用性集群、负载均衡集群。    科学集群(ScientificClustering,简称SC):使用特殊的软硬件技术将大量的计算能力有限的机器连接成计算能力巨大

    2022年9月4日
    4
  • Delphi xe5 StyleBook的用法(待续)

    Delphi xe5 StyleBook的用法(待续)首先要在FORM里拖进来一个StyleBook1,然后在Form里设置属性,记住一定要在单击form,在OBjectInspector里设置StyleBook [StyleBook1].下一个属性StyleName[ ] 好像是多余的,我多次都把StyleName[StyleBook1],但是没有效果。在其他控件下设置StyleLookup就可以了,单击选择。styleName就

    2022年7月18日
    11
  • iOS 学习视频 资料集合 (视频 +博客)[通俗易懂]

    iOS 学习视频 资料集合 (视频 +博客)[通俗易懂]转载:https://blog.csdn.net/yst19910702/article/details/78809472无意间在网上发现一些学习资源,分享下。资源主要是一些视频资源和博客网站。这些资源主要针对一些初中学着。利用一些基础知识点,中级有小码哥的视频里的视频和组件化。(后面有些博客真的很不错)。总之都是杂七杂八的,分享出来旨在共同学习。有不好的地方还望指教。 虽然都是一些培训班的视频,…

    2022年7月27日
    4
  • java中异常的捕获及处理「建议收藏」

    一、Java异常简介什么是异常?程序运行时,发生的不被期望的事件,它阻止了程序按照程序员的预期正常执行,这就是异常。异常发生时,是任程序自生自灭,立刻退出终止。在Java中即,Java在编译或运行或者运行过程中出现的错误。Java提供了更加优秀的解决办法:异常处理机制。异常处理机制能让程序在异常发生时,按照代码的预先设定的异常处理逻辑,针对性地处理异常,让程序尽最大可能恢复正常并继续…

    2022年4月3日
    118

发表回复

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

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