搜索功能

简易搜索规则:
- 忽略空格和大小写,模糊搜索,只匹配标题
##
双井号开头,搜索除第一个#
号以外的内容#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
离开搜索框