一、使用案例

1.1 查询函数"start_kernel"的定义

def:start_kernel

案例如下:

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

refs:sprintf  path:sound\/core\/

案例如下:

1.3 查询变量"cmdline"赋值

"command_line ="

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

"init-mm.o" path:Makefile

1.5 查询字符“command line”

"command line"

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

start_*

1.7 条件查询文件

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

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

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

". c"

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

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

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

main type:c

二、使用技巧

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

  • “+”表示查询子句内容是必须的;形如+“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。

【OpenGrok代码搜索引擎】四、OpenGrok使用指南相关推荐

  1. Android下的配置管理之道之OpenGrok代码索引环境搭建

    1 OpenGrok介绍 OpenGrok 是一个快速, 便于使用的源码搜索引擎与对照引擎, 它能够帮助我们快速的搜索.定位.对照代码树. 接下来就具体讲解一下 OpenGrok 的安装及使用. 2 ...

  2. ML之XGBoost:XGBoost参数调优的优秀外文翻译—《XGBoost中的参数调优完整指南(带python中的代码)》(四)

    ML之XGBoost:XGBoost参数调优的优秀外文翻译-<XGBoost中的参数调优完整指南(带python中的代码)>(四) 目录 Step 3: Tune gamma步骤3:伽马微 ...

  3. 前端常用代码片段(四)

    前端常用代码片段(一) 点这里 前端常用代码片段(二) 点这里 前端常用代码片段(三) 点这里 前端常用代码片段(四) 点这里 前端常用代码片段(五) 点这里 前端常用代码片段(六) 点这里 1.简述 ...

  4. 手机自动化测试:Appium源码分析之跟踪代码分析四 1

    手机自动化测试:Appium源码分析之跟踪代码分析四 控制器模块 // Appium webserver controller methods // https://github.com/hugs/a ...

  5. 在 C# 中生成代码的四种方式——包括.NET 5中的Source Generators

    Microsoft在最新的C#版本中引入了Source Generator.这是一项新功能,可以让我们在代码编译时生成源代码.在本文中,我将介绍四种C#中的代码生成方式,以简化我们的日常工作.然后,您 ...

  6. 利用Hound快速搭建代码搜索引擎

    Hound 简介 Hound 是轻量级的快速代码搜索引擎.支持Git.SVN.Mercurial.Bazaar.Hound 自身是个静态 React 前端,可以和 Go 后端进行交互,后端拉取最新代码 ...

  7. 皮尔森相关性系数的计算python代码(四)(热力图版)

    部分代码: import numpy import pandas as pd import numpy as np from matplotlib.font_manager import FontPr ...

  8. 计算机英语过级考试开挂,大学生注意了!教你一招四六级开挂指南 | 你的英语听力还有救...

    原标题:大学生注意了!教你一招四六级开挂指南 | 你的英语听力还有救 学渣和普通滴小伙伴是不是早就对听力已经累觉不爱了 不用沮丧,毕竟还有学姐在呢~ 接下来学姐就给大家介绍下四六级听力的那些不为人知的 ...

  9. 一个非常好用的代码搜索引擎

    我的新书<Android App开发入门与实战>已于2020年8月由人民邮电出版社出版,欢迎购买.点击进入详情 ❝Talk is cheap. Show me the code.❞ - L ...

  10. 通达信指标公式颜色代码的四种写法(COLOR/RGB)

    通达信指标公式颜色代码有四种写法,分别为COLOR+颜色的英文.COLOR+十六进制.RGBX+十六进制.RGB(R,G,B).标题有点尴尬,让我想到孔乙己"茴"字的四种写法,哈哈 ...

最新文章

  1. 非标准配置linux,剖析非标准波特率的设置和使用于Linux操作系统中
  2. python爬取图片全网通_UC头条:全网通杀——暴强工具推荐: 下载你看到的任意视频...
  3. emacs 安装auto-complete
  4. sqlserver中实现split分割字符串函数
  5. NIO和Reactor
  6. Conan and Agasa play a Card Game
  7. 在MySQL中保存Java对象_java对象储存到数据库
  8. 一段js面向对象的写法
  9. Please make sure you have the correct access rights and the repository exists.报错问题
  10. 单片机单口不可用或被占用_单片机为什么一直用C语言,不用其他编程语言?只有学过的知道...
  11. C2597 LNK2001 C++静态成员函数、变量理解
  12. 【EF】EF框架 Code First Fluent API
  13. 【修电脑】ctfmon.exe停止工作以及explorer.exe日常崩溃重启
  14. NMAKE makefile内容和功能
  15. HDU 2825 Wireless Password
  16. 技巧分享篇---如何从GitHub上下载某个项目中单个文件的方法
  17. 每个数据科学家都应该知道的10种机器学习方法
  18. 用Pandas做透视表
  19. 权威的计算机类期刊,计算机类期刊权威排名
  20. 这个商业模式、盈利模式、谈判技巧值得借鉴!

热门文章

  1. 唱作俱佳,腾讯AI艾灵领唱中国新儿歌
  2. 股票交易接口实现方式
  3. html页面上不断掉星星,html 页面的星星闪烁 特效 背景 (js案例 )
  4. java多线程(超级详细)
  5. 学习Lua碰到的问题、踩坑记录
  6. Deep Graph Contrastive Representation Learning
  7. 英语语法笔记Day7——并列主从句
  8. Oracle 转 PG- ERROR: recursive query “t“ column 2 has type character varying(150) in non-recursive t
  9. ChemDraw怎么画3D图?
  10. python excel 单元格换行_数据标准化 使用Python脚本处理excel单元格换行符