搜索语法和运算符
您可以使用布尔运算符、引号、通配符并/或从字段中列表选择有效数据,或指定要搜索数据的类型以构造搜索条件。
包含在搜索中
- 元数据字段
- XML 内容中的元素文本,删除特殊字符并支持词干分解
- 任何 XML 元素名称、属性名称、属性值、批注、处理指令或此 XML 类型之一的任意文本内容。
范围和筛选
您可以根据对象的元数据定义搜索条件,其中包括所有存储库对象具有的三个属性:
- 最新版本或全部版本 — 您可以在对象的全部版本中或仅在最新版本中搜索。默认情况下,搜索对象的最新可用版本。
- 文档语言 — 您可以使用给定的一种语言或选择多种语言来搜索所有文档。默认情况下,您使用的是您所用语言的存储库,但您也可以使用其他语言搜索存储库。
- 对象类型 — 可以选择将搜索限制于指定的对象类型。选择正确的对象类型可使结果列表更加明确,并可影响结果的数量。
此外,您可以使用其他各种属性(如作者、状态等)限制搜索结果。
词干分解
搜索功能使用词干分解,这是一种搜索引擎用来理解不同语法形式的字词并确保搜索结果涵盖不同变体的技术。搜索字词时,词干分解包括相关的形式,如复数形式和动词时态。因此,您可以使搜索词保持简单,引擎将执行其余操作。
在全文字段中搜索时使用词干分解,而词干分解取决于为搜索指定的语言。例如,如果搜索术语 fly,则结果将包括包含与“fly”词干相同的单词的存储库对象,如“flying”、“flown”、“flew”等。
通配符
通配符是允许灵活匹配字符或单词的占位符。您可以使用星号字符 * 来表示任意字符序列。
例如,如果搜索术语“comput*”,则结果将包括包含以“comput”开头的单词的存储库对象,如 computer、computing、computation、compute 等。
Boolean 运算符
可使用布尔运算符更精确地指定搜索条件。布尔运算符定义了字词或字词组之间的关系。可使用此运算符来指定是所有字词或任意字词都将符合条件,还是应排除含有指定字词的对象才可满足条件。
| 若要搜索 | 运算符 | 示例 | 结果 |
|---|---|---|---|
| 同一对象的两个术语 | AND & + | content AND management content & management content + management | 同时包含单词 content 和 management 的对象。 |
| 对象中的其中一个术语 | 或 | , <space> | content OR management content | management content, management content management | 包含单词 content 和/或 management的对象。 |
| 不包含此术语的对象 | NOT ! - | NOT management !management -management | 未含有单词 management 的对象。 |
分组字符
使用括号,确保包含不同运算符的搜索按计划执行。括号可对布尔运算符进行分组,以便可将其用于单独的条件。
例如:
| 若要搜索: | 举例: | 结果包括: |
|---|---|---|
| (word1 AND word2) OR word3 | (content AND management) technologies | 包含单词 content 和 management 的所有对象,或包含单词 technologies 的对象。 |
| (word1 NOT word2) AND word3 | (content NOT management) AND technologies | 包含单词 content 但不包含 management,且还须包含单词 technologies 的所有对象。 |
例如,可定义更为复杂的字符串以按此顺序搜索带有单词 research and development 或带有 customer service 的对象,但不搜索包含字符串 XYZ 的对象:
("research and development" or "customer services" support) -XYZ
将精确短语括在引号之间
当输入不含引号的文本时,则搜索字符串中的每个字词都将用作单独条件。结果会显示包含其中任意字词的全部对象。要搜索精确短语,请将搜索字符串用双引号引起来。
例如:
| 若搜索条件为: | 则结果为: |
|---|---|
| content management technologies | 内含单词“content”或“management”或“technologies”的对象。 |
| "content management technologies" | 内含短语“content management technologies”(按此确切顺序排列的字词)的对象。 |
将特殊字符用引号引起来
如本主题前面所述,某些字词和字符具有布尔运算符、通配符或分组字符的特殊含义。为确保特殊字符被解释为搜索文本的一部分,您应将搜索短语用引号引起来。
特殊字符包括:+(加号)、&(与号)、,(逗号)、|(细竖条)、-(减号)、! (感叹号)、((左括号)、)(右括号)和 *(星号)。
示例
对文本或 XML 内容的 XML 片段搜索是性能和功能间的平衡。这意味复杂的 XML 结构搜索可能不会返回所期望的结果,但下列典型用例在任何情况都是有效的。
| 若要搜索 | 示例 | 结果 |
|---|---|---|
| 文本的存在 | body | 元素文本、属性值、批注及处理命令中包含“body”的对象。请注意:此结果与仅含有 <body> 元素的对象不匹配。 |
| XML 元素的存在 | "<indexterm>" | 包含 <indexterm> 元素(或元素文本内容中包含 indexterm 一词)的对象 |
| XML 元素的不存在 | -"<indexterm>" | 不包含 <indexterm> 元素(并且元素文本内容中不包含 indexterm 一词)的对象 |
| 具有特定公共文档类型的对象 | "-//OASIS//DTD DITA Topic//EN" | 包含“-//OASIS//DTD DITA Topic//EN”(或元素文本内容中的“oasis dtd dita topic en”)(不限于 PUBLIC ID)的对象 |
| 具有特定系统文档类型的对象 | "topic.dtd" | 包含“topic.dtd”(或元素文本内容中的“topic dtd”)(不限于 SYSTEM ID)的对象 |
| 具有特定文档类型的对象 | "<!DOCTYPE topic PUBLIC \"-//OASIS//DTD DITA Topic//EN\" \"topic.dtd\"" | 包含给定文档类型定义(或元素文本内容中的“doctype topic public oasis dtd dita topic en topic dtd”)的对象 |
| 具有特定值的属性 | "href=\"GUID-C90ECA8A-A0B2-4F5B-9F00-7CF27E6CABF7\"" | 包含“href”属性,值为“GUID-C90ECA8A-A0B2-4F5B-9F00-7CF27E6CABF7”的对象。请注意,需避免使用内双引号。
|
| 特定条件 | ishcondition=“BLUETOOTH=Y” | 包含给定条件(或元素文本内容中的“ishcondition bluetooth y”)的对象 |
| 属性值 | "GUID-C90ECA8A-A0B2-4F5B-9F00-7CF27E6CABF7#GUID-C90ECA8A-A0B2-4F5B-9F00-7CF27E6CABF7" | 包含此部分文本(属性值、元素文本、处理命令文本、XML 批注等中)的对象。包含字符 <, =, > 的属性值无法通过此方法找到,因此,如果搜索“BLUETOOTH=Y”将不起作用。
|
| 属性的存在 | "href=" | 包含“href”属性(或元素文本内容中的“href”)的对象 |
| 带有文本的特定元素 | "<title>charging</title>" | 包含给定元素中(或元素文本内容中的“<title>charging</title>”)文本的对象
|
| 特定处理指令 | "<?xm-replace_text Paragraph?>" | 处理指令中(或元素文本内容中的“xm replace text paragraph”)包含给定文字的对象 |
| 特定批注 | "<!--ExampleCorp, Inc., 1988-2009, v.4002-->" | 包含给定批注(或文本内容中其他任何地方)(或元素文本内容中的“examplecorp inc 1988 2009 v 4002”)的对象 |
| XML 元素的存在(特例) | "<msgph/>" | 包含<msgph>元素(因此不仅是空白的<msgph>元素)(或元素文本内容中的“msgph”)的对象 |
已知限制
- 搜索包含 / 反斜杠字符的文本时不起作用
- 因依赖于 XML 结构,搜索嵌套的 XML 元素时可能不起作用。