检索语言就是为沟通文献标引与文献检索而编制的人工语言,也是连接信息存储和检索两个过程中标引人员与检索人员双方思路的渠道,是用于文献标引和检索提问的约定语言。如果没有检索语言作为标引人员和检索人员的共同语言,就很难使得标引人员对文献信息内容的表达和检索人员对相同文献信息内容需求时的表达取得一致,信息检索也就不可能顺利实现。因此,编制检索语言的目的就是不但能够保证不同的标引人员描述文献特征的一致性,而且能够保证检索提问词与文献标引词的一致性。
![]() |
提示 |
|---|---|
系统使用的检索语言是CQL(Common Query Language),下面是对CQL语言的简单介绍,如想了解更详细信息,请参考http://www.loc.gov/standards/sru/cql/。 | |
CQL语言简介
CQL:Common Query Language的简写,它是一种正式的检索语言。可以向检索系统发出检索请求,其检索表达式可以映射到具体的检索系统中去(例如:RMS DB Server、SQL等检索系统)。CQL是一种非常直观的检索语言,其设计目的是使人易读、易写。
CQL与传统检索语言的区别
传统的检索语言一般有两种情况:一种是功能强大而表达性强的语言,对于非专业人员既不容易读,也是不易写的(如SQL、PQF、XML Query);另一种是简单而直观的语言,它不能够表达复杂的一些概念(如CCL或Google的检索语言)。CQL的目的就是把检索表达的这种简单性和直观性与Z39.50的Type-1检索有机地结合在一起,就像界面上任何一个语法正确地文本一样,CQL可以特意定制一些如“do what you mean”作为一些简单的每天的查询。当然,如果需要的话,也允许使用一些方法表达复杂的概念。
简单词
表示不需要加入任何运算符和修饰符,直接输入检索词进行检索。例如:计算机。
关系表达式
关系运算符
<、>、<=和>=: 保留它们通常的含义。
=:
相当于模糊匹配,用于查找匹配一定条件的记录。例如:论文题名="计算机辅助设计 研究",表示查找论文题名是“计算机辅助设计 研究”这个字符串或是包括“计算机辅助设计 研究”的一串字符串,注意:只能在“计算机辅助设计 研究”的前后插入字符,不能在“计算机辅助设计 研究”字符串内插入任何字符。
精确等于某个值。
<>:不等于。
exact:能精确匹配一串字符串。例如:作者 exact "王明",是指查找作者是王明的记录。
all:当检索词中包含有多重分类时,它们分别可以被扩展成布尔运算符“and”的表达式。例如:论文题名 all "北京 上海 广州",可扩展为:论文题名="北京" and 论文题名="上海" and 论文题名="广州",表示查找论文题名中包括“北京、上海、广州”的记录。
any:当检索词中包含有多重分类时,它们分别可以被扩展成布尔运算符“or”的表达式。例如:论文题名 any "北京 上海 广州"可扩展为:论文题名="北京" or 论文题名="上海" or 论文题名="广州",表示查找论文题名中包括“北京、上海、广州”或其中之一的记录。
within:是指定义一个检索范围,检索范围由检索词描述。例如:dc.日期 within "2002 2003 2004" ,表示在dc映射集中的日期字段的值落入”2002 2003 2004”范围之内,它的值可以是2002、2003、2004其中之一。
关系修饰符
masked:包括通配符“*、?”和定位符“^”。
?:表示匹配任意单个字符,如果表示单个字符“?”,那么可以用转义字符“\?”来表示。例如:第?定律,可以表示查找“第二定律”、“第三定律”等记录。
*:表示匹配任意0个或多个字符,如果表示单个字符“*”,那么可以用转义字符“\*”来表示。例如:计算机*研究,表示查找包括“计算机研究”、“计算机软件研究”、“计算机辅助设计研究”等的记录。
^:表示匹配输入字符串的开始或结束位置,如果表示单个字符“^”,那么可以用转义字符“\^”来表示。例如:^北京,表示查找以北京打头的记录;研究^,表示查找以研究结尾的记录。
映射集:映射集是一种元数据的集合,目前万方数据医药镜像系统中使用了“万方映射集”、“都柏林核心集”和“本地映射集”三个映射集,“万方映射集”和“都柏林核心集”分别是用前缀“wf”和“dc”来表示的。例如:wf.论文题名="计算机",表示在wf映射集中查找论文题名字段中含有计算机的记录。
布尔表达式
布尔运算符
and:用“与”组合检索项,表示查找包括这两项的记录。例如:北京 and 上海,表示查找包括北京和上海的记录。
or:用“或”组合检索项,表示查找包括这两项或仅其中任一项的记录。例如:北京 or 上海,表示查找包括北京和上海或其中之一的记录。
not:使用“非”查找包括某一项而非另一项的记录。例如:软件 not 硬件,表示查找包括软件但不包括硬件的记录。
prox:使用Prox查找相邻近的记录。例如:p prox c,表示查找P和C邻近的记录。
布尔修饰符:系统支持以下三种CQL的布尔修饰符,仅限于“Prox”布尔运算符,每个修饰符之间是用“/”隔开的。
distance:表示两个操作数之间的距离。注意:distance后面跟的是整数,distance默认值为“1”;例如:计算机 prox/distance=4 研究,表示检索结果中包括有计算机和研究,且计算机和研究间相隔3个字符,如“计算机辅助设计研究”。
ordered:表示两个操作数必须按照检索表达式里出现的次序出现。例如:计算机 prox/distance=3/ordered 基本原理,表示检索结果中计算机和基本原理相隔3个字符且计算机和基本原理要按表达式中出现的顺序出现。
unordered:不排序。例如:物理 prox/distance=3/unordered 实验,表示物理和实验可以按任意顺序出现且两者之间相隔3个字符。