通用搜索语言

xuanwu · 2024-9-8 07:31:53 · 38 次点击
[知乎答“现在业界是否需要新的编程语言?如果需要,那需要什么类型的编程语言?”]( https://www.zhihu.com/question/657656598/answer/3619027866)

从技术角度看是个很小的领域,但其应用极广,是几乎每个在线用户每天都用到的功能。

信息有各种组织方式,但都需要‘搜索’这一人机界面。应用包括本地文件文本搜索、网页搜索、数据库搜索等。

## 各应用举例

### 网页搜索

以 [谷歌高级搜索]( https://support.google.com/websearch/answer/2466433?visit_id=638613314709525238-1013998458&p=adv_operators&hl=en&rd=1) 的 Operators 为例,除了最基本的:

```
关键词 "某特定短语" site:某网站 -排除词
```

还有 [几十个其他的]( https://ahrefs.com/blog/google-advanced-search-operators/),如 OR/AND/*/filetype/before/after 。

针对网络资源,功能包含:
- 包含或排除某(些)词或短语
- 指定发布时间范围
- 指定文件格式
- 路径( url )包含某内容

### 文本搜索

以 [此文]( https://benhoyt.com/writings/count-words/) 用作基准的 [grep]( https://www.runoob.com/linux/linux-comm-grep.html) 为例。

```
grep -r --include="某文件名模式" "文本模式" 路径
```

针对文本文件,功能包含:

- 通过模式匹配,可包含或排除某(些)词或短语
- 指定文件时间戳范围,借助 [find]( https://stackoferflow.com/questions/10898154/grep-inside-all-files-created-within-date-range)
- 指定文件范围,如路径、文件名模式等

### 数据库

以 SQL 为例,针对按表格存储的记录,功能包含:

```sql
SELECT 某列
FROM 某表
WHERE 某列 REGEXP ‘某模式‘ and DATE BETWEEN 开始 and 结束;
```

- 指定记录所在表
- 通过模式匹配,可包含或排除某(些)词或短语
- 指定时间戳范围

## 通用搜索语言

各应用的搜索功能中,虽搜索语法设计不同,有相当一块常用部分重叠。可从这部分需求出发作些风格一致、易读易写的设计尝试。
举报· 38 次点击
登录 注册 站外分享
1 条回复  
GeekGao 小成 2024-9-8 07:35:58
用 LLM ,自然语言描述即可,根本不需要直接暴露 DSL 这种对小白不友好的事物了。时代真的变了。
返回顶部