Skip to main content
xx

小书匠全文搜索语法

概述

小书匠从 8.4.17 版本开始,支持高级的搜索语法,通过该功能,用户可以将自己在小书匠内的文章更精确的查询出来。

入口

入口

入口

搜索结果

搜索结果

更细化的显示效果

更细化的显示效果

语法

搜索语法由 文本段条件段 组成。

文本段

文本段就是需要进行全文搜索的关键词,文本段内可以包含多个文本,文本之间用空格分开。

多关键词搜索时,关键词之间使用关系。即只要文章包含其中一个关键词,该文章就符合搜索结果。

如果想多个关键词进行关系处理,只需要将多个关键词之间用 + 符号链接即可。

文本段支持排除语法,只要在关键词前加 - 符号时,系统将过虑掉该关键词搜索出来的文章。

示例

  1. 搜索单个关键词 清单
  1. 1清单 

  1. 搜索多个关键词 清单电脑
  1. 1清单 电脑 

  1. 搜索包含 清单, 但不包含 公司 的文章
  1. 1清单 -公司 

文本段分词查询

为了提高索引速度及搜索速度,系统会采用倒排索引的算法,对文本段进行分词索引,查询时,再根据分词后的内容进行查询.具体原理,可以查看这篇文章 利用中文分词,在小书匠上改进使用体验

比如,用户在搜索 待办清单 这个词时,系统会自动进行分词操作,将这个词分成 , , 清单,并按 的逻辑关系,把所有结果集显示出来.也就是文章里只要同时包含 , , 清单 这三个子词,不管他们的顺序组合,系统都会一并显示出来.

为什么会分成 , , 清单 这三个子词,而不是 待办清单 这两个?

目前分词逻辑是按照系统内置常用的分词逻辑处理的.因为汉字没办法像英文那样,通过空格就可以很明显区分出词与词之间的界线,所以在分词上是有差异的,对于有岐义的词,不常见的词,或者专业领域内的词,系统都没办法识别出来的.特别是一些新兴词,比如 小红书,网红, 有些用户认为这就是一个词,但系统还是会把他拆成三个字 , , .

怎么判断系统如何分词?

可以在小书匠的编辑区里,输入想要分词的语句, 比如这样的语句 这两个清单跟待办清单类似,不同的地方是,查找文章内的强调句子,高亮句子,或者引用句子。 比如,“网红奶茶”、“网红蛋糕”、“网红餐厅”、“网红包包”……, 我们可以用鼠标双击 类似 这个位置,系统就自动选择这个词,说明 类似 这个词系统是识别的.


如果我们用鼠标双击待办, 就会发现,系统只能选中一个字, 要吗是 , 要吗是 , 没办法自动完成 待办 这个词的选择,说明系统不识别这个词.


文本段不分词查询

不分词查询时,系统会进行全库扫描,搜索词将在文章内进行精准匹配。

系统默认使用的是自动分词查询,如果想使用不分词查询,需要将查询词用双引号包裹起来,比如 待办清单, 需要写成这种格式"待办清单"

注: 每次全库扫描查询时,系统都会从 0 开始索引,查询速度会受电脑硬盘读写速度和 cpu 速度影响。相对于分词查询会慢很多,但结果更加的准确。

条件段

条件段就是可以根据文章的属性进行过滤搜索结果集的一段。条件段内可以包含多个条件,多个条件之间需要用空格分开。 多个条件结果集使用的是 关系,即必须同时满足多个条件的文章。

单个条件格式为 属性:属性值

目前系统支持的 属性 主要有 标签tag, 分类category,标识flag,创建时间date

条件段支持排除语法,只要在 属性 前加 - 符号, 就可以将该条件过滤出来的文章排除出最终结果集。

注:

为了更好的理解条件段,可以先阅读过滤器这篇文章。大部值的属性,都是基于过滤器设计的。

标签 tag

格式

单个标签: tag:标签值

多个标签: tag:标签值[,标签值,标签值] 多个标签以逗号分开

示例

  1. 搜索标签是 工作日志 的文章
  1. 1tag:工作日志 

  1. 搜索标签是 工作日志互联网,但不包含标签 电商 的文章,同时文章全文搜索需要包含 联网 关键词
  1. 1联网 tag:工作日志,互联网 -tag:电商 

分类 category

格式

category:分类值

分类属性还支持起始于功能

category:xsjStartsWith##分类值

标识 flag

格式

flag:标识值

创建时间 date

格式

date:时间值

时间属性对应的时间值支持三种格式,精确时间,时间范围相对时间

所有时间最小单位为天。

精确时间

格式

date:YYYYMMDD

示例

  1. 搜索 2020 年 2 月 11 日创建的所有文章
  1. 1date:20200211 

时间范围

格式

date:YYYYMMDD/YYYYMMDD

示例

  1. 搜索在 2020 年 3 月 15日 到 2020 年 5 月 1 日之间的文章,文章需要包含关键字 工作
  1. 1工作 date:20200315/20200501 

相对时间

格式

date:-[数值][单位符号]

注: 数值前面的 - 符号

单位符号支持

天:d, day

星期: w, week,weeks

月:mon, month, months,M

季:Q,Quarter,Quarters

年:y,year,years

今天: now

示例

  1. 最近1天的文章
  1. 1date:-1d 

  1. 最近2个月的文章,但不包含2020年12月3日的文章
  1. 1date:-2M -date:20201203 

  1. 在文本段或者条件段里,必须包含一个非排除语法生成的结果集。比如只有 -工作 这样的搜索,系统将返回空的文件列表。
Design by xsj 京ICP备13031371号