搜索功能

简易搜索规则:
- 忽略空格和大小写,模糊搜索,只匹配标题
##双井号开头,搜索除第一个#号以外的内容#12单个井号加数字,跳转到对应序号的服务器(WebUI 不支持)
示例:
a B C 1 搜索标题包含 abc1 字符的服务器。##123 搜索标题包含 #123 字符的服务器。#123 跳转到序号为 123 的服务器。#0 因为不存在零号服务器,所以跳转到最后一个。
高级搜索格式:
#<标签名> [not] <操作符> <参数1> <参数2> ...
- not 为可选参数,表示对后面的条件取反
- 参数中用到后面 “组合搜索” 的符号
&|!()时需要添加双引号
| 文本型标签名 | 说明 |
|---|---|
| name | 服务器名字 |
| summary | 服务器摘要(协议@地址) |
| title | 服务器标题(序号+名字+摘要) |
| mark | 标记 |
| remark | 备注 |
| tag1-3 | 标签 1-3 |
| core | 自定义 core 名 |
| selected | 是否已选中,内容是字符串 true 或者 false |
| 文本型操作符 | 说明 |
|---|---|
| is | 完全相同 |
| has | 包含 |
| like | 模糊匹配(默认操作符) |
| starts | 匹配开头 |
| ends | 匹配结尾 |
| match | 使用c#正则表达式匹配(区分大小写) |
注:除了 match 以外,其他操作符都忽略大小写。match 可以添加 (?i) 忽略大小写。
示例:
#mark is a B C 搜索 “标记” 是 “abc” 的服务器。文本类型的参数会合并起来。#mark abc 搜索 “mark” 中出现 “abc” 三个字母的服务器。文本类型默认操作符是 “like”#mk has abc 因为 “mk” 可以匹配 “mark” 和 “remark” 两个标签名,他们任意一个包含 “abc” 都会搜到。#sel not f 搜索已勾选的服务器。相当于 #selected not like false#name is "" 搜索 “名称” 为空白的服务器。#name has " " 搜索 “名称” 中包含空格的服务器。#name has """ 搜索 “名称” 中包含引号的服务器。#smm match "(?i)\.net$" 搜索 “摘要” 以 “.net” 结尾的服务器,忽略大小写。
| 数字型标签名 | 说明 |
|---|---|
| index | 序号 |
| latency | 测速延迟(ms),没测速的是 -1,超时是个很大很大的数 |
| upload | 上传量(MiB) |
| download | 下载量(MiB) |
| port | inbound 端口号 |
| modify | 修改日期,格式:240230,年份可以省略 |
| 数字型操作符 | 说明 | 参数个数 |
|---|---|---|
| = | 相等(默认操作符) | 1 |
| < | 仅小于 | 1 |
| > | 仅大于 | 1 |
| ~ | 数值范围包括首尾 | 2 |
示例:
#idx 3 序号为 3 的服务器。因为默认操作符是 =,所以相当于 #index = 3#idx not > 10 搜索序号小于等于 10 的服务器。#latency > 100 300 搜索测速结果大于(不包括)100ms 的服务器。后面多余的参数300被忽略掉。#latency ~ 1 1000 搜索测速结果在 [1ms, 1000ms] 之间的服务器。#latency ~ 123 参数个数不足搜索失败。#modify = 0230 搜索二月三十日导入的服务器。#index 参数个数不足搜索失败。
组合搜索:
#<高级搜索1> <组合操作符> #<高级搜索2> <组合操作符> #<高级搜索3> ...
- 默认从左向右组合,可以添加
()括号调整组合顺序
| 组合操作符 | 说明 | 左边 | 右边 | 结果 |
|---|---|---|---|---|
& | 交集 | [a, b] | [b, c] | [b] |
| | 并集 | [a, b] | [b, c] | [a, b, c] |
! | 补集 | [a, b] | [b, c] | [a] |
其中 & 操作符的作用和 linux 的管道类似
示例:
#idx < 3) | (#idx ~ 6 7 缺失的括号会自动在头尾补全。搜索结果序号:[1, 2, 6, 7]#smm starts trojan & #name is "" 搜索 trojan 协议并且名字是空白的服务器。#smm has .ws & (#idx < 10 ! #idx = 5) 搜索除 5 号外前 9 个服务器中使用 ws 协议的服务器。
辅助过滤器
排序过滤器:
#orderby [-]<标签名1> [-]<标签名2> ...
- 通常和
&组合操作符一起使用 - 标签名可以是“文本型标签名”或者“数字型标签名”
- 默认升序排列,标签名前面添加
-(减号)表示降序排列 - 排序是个耗时的操作,尽量放后面
示例:
#ord -idx 按序号降序排列。#idx ~ 1 30 & #ord smm -lat 对前 30 个服务器先按摘要升序排列,摘要相同时再按延迟降序排列。#idx ~ 1 30 & #ord zzz 不存在 zzz 这个标签名,结果为空。
截取过滤器:
#take <截取数量> <跳过数量>
- 通常和
&组合操作符一起使用 - “截取数量”为负数时,将从尾部截取(v2.1.3+)
- “跳过数量”可以省略,不可以是负数
示例:
#idx > 5 & #take 3 搜索结果:[6, 7, 8]#idx < 20 & #take -2 搜索结果:[18, 19]#idx < 20 & #ord -idx & #take 3 3 搜索结果:[16, 15, 14]#idx < 20 & #take 3 3 & #ord -idx 搜索结果:[6, 5, 4]
#idx ~ 22 25 | #take 2 我也不知道和 & 以外的组合操作符放一起会发生什么。
注释过滤器(v2.1.3+)
#note 任意字符串
- 返回空集合,通常和
|组合操作符一起使用 - 必须输入全名,不能像其他标签名那样缩写
示例:
#note 显示第 2 个服务器 | #idx 2
跳转命令(v2.1.3+)
#goto <组合搜索>
- 必须是
#goto开头,跳转到 <组合搜索> 的第一个结果 - 如果结果为空,则跳转到第一个服务器
- 如果 <组合搜索> 解释失败,则把整个字符串当作 <组合搜索> 处理
- WebUI 不支持这个功能
示例:
#goto (#note "跳转到第 21 个服务器" | #idx 21)#goto (#idx 23 | #idx 21) 跳转到第 23 个服务器,因为后面的 <组合搜索> 结果是 [23, 21]#goto & #idx ~ 21 23 后面的 <组合搜索> 解释失败,& 左边结果为空,整体结果为空。#goto | #idx ~ 21 23 解释失败,搜索结果:[21, 22, 23]
快捷键
Ctrl + F 进入搜索框Esc 离开搜索框