mirror of
https://github.com/bs-community/blessing-skin-manual.git
synced 2024-11-27 00:59:54 +08:00
add search syntax introduction
This commit is contained in:
parent
924d4b9f8b
commit
c65e34f823
@ -62,6 +62,7 @@ link = '/api/'
|
||||
'/flarum',
|
||||
'/artisan-cli',
|
||||
'/web-cli',
|
||||
'/search-syntax',
|
||||
'/css-js',
|
||||
'/bench',
|
||||
'/v5-release-note',
|
||||
|
153
man/search-syntax.md
Normal file
153
man/search-syntax.md
Normal file
@ -0,0 +1,153 @@
|
||||
# 搜索语法
|
||||
|
||||
从 Blessing Skin v5 起,「用户管理」和「角色管理」中的筛选和排序功能被整合到管理列表上方的搜索框中。通过运用符合语法的查询,可以实现灵活的筛选和排序。
|
||||
|
||||
## 搜索
|
||||
|
||||
### 精确搜索
|
||||
|
||||
列表中的大部分字段支持精确搜索。例如,查找 UID 为 1 的用户可以使用这样的查询:
|
||||
|
||||
```
|
||||
uid = 1
|
||||
```
|
||||
|
||||
也可以使用冒号(`:`,半角的)代替等号(`=`):
|
||||
|
||||
```
|
||||
uid: 1
|
||||
```
|
||||
|
||||
上面的语句中,空格不会影响查询。
|
||||
|
||||
再来一些例子:
|
||||
|
||||
查询某个邮箱地址对应的用户:
|
||||
|
||||
```
|
||||
email = 'a@b.c'
|
||||
```
|
||||
|
||||
单引号可以改为双引号。但无论使用哪种引号,都必须是半角的引号:
|
||||
|
||||
```
|
||||
email = "a@b.c"
|
||||
```
|
||||
|
||||
### 指定比较关系的搜索
|
||||
|
||||
查询中还可以使用 `>`、`<`、`>=`、`<=` 操作符。这些操作符不仅适用于数字(包括整数和小数),还适用于日期。
|
||||
|
||||
例如,查找积分超过 50 分的用户:
|
||||
|
||||
```
|
||||
score > 50
|
||||
```
|
||||
|
||||
或查找注册时间在 2020-01-01 00:00:00 之后的用户:
|
||||
|
||||
```
|
||||
register_at > '2020-01-01 00:00:00'
|
||||
```
|
||||
|
||||
注意使用日期时要 **加上** 引号。
|
||||
|
||||
此外,按日期查找时,还可以使用 `today` 和 `tomorrow` 等相对日期:
|
||||
|
||||
```
|
||||
register_at >= today
|
||||
```
|
||||
|
||||
此时 **不需要** 加上引号。
|
||||
|
||||
### 模糊搜索
|
||||
|
||||
有几个字段可以进行模糊搜索。目前支持模糊搜索的字段有:
|
||||
|
||||
- 用户模型中的 `email` 字段
|
||||
|
||||
- 用户模型中的 `nickname` 字段
|
||||
|
||||
- 角色模型中的 `name` 字段
|
||||
|
||||
使用模糊搜索时,不必像「精确搜索」那样指定字段名,而且搜索时也不需要完全匹配。
|
||||
|
||||
例如,假设有两个用户,邮箱地址分别为 `abc@test.test` 和 `bcd@test.test`,当使用模糊搜索时,可以直接在搜索框中输入:
|
||||
|
||||
```
|
||||
bc
|
||||
```
|
||||
|
||||
那么这两个用户都会被搜索到。
|
||||
|
||||
相比之下,如果输入:
|
||||
|
||||
```
|
||||
email = 'bc'
|
||||
```
|
||||
|
||||
这时没有用户会被匹配到,因为这是精确搜索。
|
||||
|
||||
### 逻辑操作符
|
||||
|
||||
目前支持的逻辑操作符有 `not`、`and` 和 `or`。
|
||||
|
||||
查找积分不超过 50 分的用户:
|
||||
|
||||
```
|
||||
not score>50
|
||||
```
|
||||
|
||||
查找积分超过 50 分并且 UID 大于 100 的用户:
|
||||
|
||||
```
|
||||
score > 50 and uid > 100
|
||||
```
|
||||
|
||||
查找积分超过 50 分或 UID 大于 100 的用户:
|
||||
|
||||
```
|
||||
score > 50 or uid > 100
|
||||
```
|
||||
|
||||
使用时,可添加半角括号来明确表达式的优先级:
|
||||
|
||||
```
|
||||
(score < 50 or uid < 100) and uid > 2000
|
||||
```
|
||||
|
||||
上面的查询语句表示:查找 UID 大于 2000 的用户,同时也查找积分小于 50 分或 UID 小于 100 的用户。
|
||||
|
||||
## 排序
|
||||
|
||||
若要指定排序,只需要在查询语句中添加 `sort:` 再加字段名即可。默认为升序。
|
||||
|
||||
如:
|
||||
|
||||
```
|
||||
sort:register_at
|
||||
```
|
||||
|
||||
这表示按注册时间的升序进行排序。
|
||||
|
||||
如果需要降序排序,在字段名前加 `-` 即可:
|
||||
|
||||
```
|
||||
sort:-register_at
|
||||
```
|
||||
|
||||
## 查询数量限制
|
||||
|
||||
尽管这个功能很少用,但我们还是可以在查询语句中限制查询条目数量,就像 SQL 那样:
|
||||
|
||||
```
|
||||
limit:5 from:7
|
||||
```
|
||||
|
||||
这表示从第 8 条开始,并且只查询 5 条记录。
|
||||
|
||||
::: tip
|
||||
|
||||
`limit` 参数和 `from` 参数可以各自单独使用。
|
||||
|
||||
:::
|
Loading…
Reference in New Issue
Block a user