Windchill 基本知识 > Windchill 搜索 > 搜索参考 > 搜索通配符
  
搜索通配符
* 
仅当您的“搜索模式”首选项设置为“简单”时,以下主题才适用。此为默认值。有关“高级”模式搜索的信息,请参阅高级模式搜索
使用通配符字符,可通过使用不精确或可变的搜索字符串来扩大您的搜索结果范围。这尤其在您执行数据库搜索时非常有用。
您可以将通配符用于任何需要您输入文本字符串的搜索字段。通配符既可用于索引搜索,又可用于非索引搜索。
间距及在关键字搜索中使用多个通配符
配合使用转义字符与通配符
索引关键字搜索中的唯一通配符行为


以下通配符将被接受:
* (星号)
星号可用零个或多个字符进行替换。
“名称”ABC*
结果将包括以下对象名称:
ABC
ABC DEF GHI
ABC–DEF.GHI
“名称”*ABC
结果将包括以下对象名称:
ABC
123ABC
123 456 ABC
“名称”*ABC*
结果将包括以下对象名称:
ABC
123ABCDEF
ABCDEF
123ABC
? (问号)
多数情况下,在搜索返回的对象的属性值或内容中,问号只能被替换为一个字符。
“名称”12?4
结果将包括以下对象名称:
1234
12A4
“名称”??345
结果将包括以下对象名称:
12345
AB345
“名称”ABC 12?*
结果将包括以下对象名称:
ABC 123
ABC 123_45
ABC 123 456
* 
上述示例将被输入到“名称”字段中,由此说明数据库搜索:
在某些情况下,关键字搜索会有不同的行为,在使用 Windchill Index Search 时尤为如此。有关详细信息,请参阅下面的“索引关键字搜索中的唯一通配符行为”部分。


间距及在关键字搜索中使用多个通配符
您可在单个关键字或属性值搜索中使用多个通配符。例如,输入 p?* d?s* 将会返回一个名为 "Part Design" 的对象。
但是,如果针对单个关键字字符串输入多个通配符搜索条件,则搜索会失败。这通常是关键字术语之间留出不必要的空格所致。
* 
执行非索引搜索时,在字符串间使用星号 (*),同时还应考虑空格。
例如,考虑一个名为 "PartDesign ABC-123" 的对象,以及下列关键词搜索:
关键字:?a*De*?BC*
索引搜索 - 成功
非索引搜索 - 成功
两种类型的关键字搜索结果中均将包括 PartDesign ABC-123。
关键字:?a*De*?BC*
索引搜索 - 失败
非索引搜索 - 失败
两个搜索均会失败,因为用户在 ?a*de* 之间包括了空格。
Windchill?a*De* 作为两个唯一的搜索参数处理,这应返回两个唯一的字符串 (例如,"Part Design")。
不过,"PartDesign" 只作为单个字符串。由此产生的冲突会导致搜索失败。
关键字:?a*De*?BC*
索引搜索 - 失败
搜索会失败,因为用户已移除 ?a*De* ("PartDesign") 和 ?BC* (ABC-123) 之间的空格。执行索引搜索时,不能使用通配符来表示字符串之间的空格。
Windchill Index Search 不会索引空格。空格只用于将数据拆分为不同的关键字字符串。例如,"PartDesign ABC-123" 将作为下列字符串进行索引:
PartDesign
ABC
ABC-
-123
123
此搜索试图在 De*?BC 中使用星号字符表示 "Design<space>ABC"。但是,Windchill 无法将 De*?BC 与索引关键字字符串正确匹配,因为索引中没有任何可以代表 "Design<space>ABC" 中空格的内容。而 Windchill 试图将 ?a*De*?BC* 与单个文本字符串 (例如 "PartDesignABC-123") 进行匹配。
非索引搜索 - 成功
Windchill 数据库搜索将从字面上理解空格,因此会识别用于分隔文本字符串的空格。例如,"PartDesign ABC-123" 将以下列字符串形式存储在 Windchill 搜索数据库中:
PartDesign<space>ABC-123
PartDesign
ABC-123
在对对象名称进行非索引搜索时,您的关键字术语必须考虑值字段中的每一个字符,包括空格。您可以通过提供文字关键字或使用通配符来实现此操作。


配合使用转义字符与通配符
有时,必须搜索包含通配符字符的字符串。将反斜杠字符 ( \ ) 输入到通配符字符之前以将其转义。
在执行属性搜索或非索引关键字搜索时:
在通配符字符前输入反斜杠 ( \ ) 可对搜索字符串中的文字通配符字符进行搜索。
例如,要搜索具有属性值 123?456 的对象,您将输入 123\?456。否则,搜索将尝试查找问号 (?) 由其他某个字符替换的对象 (例如 123X456)。
在已安装并启用了索引的情况下执行关键字搜索时:
如果您在执行索引搜索时将一个反斜杠 ( \ ) 输入到一个通配符之前,则 Windchill 将仅忽略这两个字符。由于 Windchill 不会为通配符字符建立索引,因而没有理由执行包括文字通配符字符的关键字搜索。
例如,123?456 将作为 123456 进行索引。因此,如果您输入 123?456 作为关键字,则搜索将无法返回对象,因为它要搜索问号由其他字符替换的单个关键字字符串 (例如 123X4561239456)。
但是,如果您输入 123\?456 作为搜索项,则搜索将忽略反斜杠和问号,然后会搜索 123456。您的搜索结果将包括 123?456,但也会包括将 123456 作为索引关键字的任何其他对象。有关详细信息,请参阅关键字中的特殊字符


索引关键字搜索中的唯一通配符行为
在基本级别上,基本上有两种 Windchill 索引搜索:关键字搜索数据库搜索。有关详细信息,请参阅关键字搜索规则
仅当已安装并启用了 Windchill Index Search,且您要执行关键字搜索 (使用“关键字”字段的全局搜索或高级搜索) 时,以下规则才适用:
关键字变量
索引搜索行为
前导星号 (*)
“关键字”字段或全局搜索中的前导星号 (*) 会将搜索限制为索引文件内容、映射属性值 (默认情况下为“名称”“编号”) 以及其他对象属性值。如果没有前导星号,会将关键字与所有属性字段进行比较。
例如,如果您输入 nitin* 作为索引搜索的关键字,则结果将包括以下内容:
名称或编号中包含 "Nitin" 或包含后跟一个或多个字符的 "Nitin" 的对象 (例如 "NitinDesign")。
内容文件中包含 "Nitin" 或包含后跟一个或多个字符的 "Nitin" 的对象 (例如 "Nitin0123")。
由名为 "Nitin" 的用户创建或修改的对象。(或者可能包含 "Nitin" 或包含后跟一个或多个字符的 "Nitin" 的任何其他属性值。)
然而,如果您输入 *nitin,则搜索将返回:
名称或编号中包含 "Nitin" 或包含前面带有一个或多个字符的 "Nitin" 的对象 (例如 "01Nitin")。
具有包含单词 "Nitin" 的内容文件和/或属性 (“名称”“编号”以外) 的对象。
* 
只有将“关键字搜索行为”首选项值设置为“关键字”(此为默认设置) 时,才会根据“名称”“编号”以外的属性以及文件内容搜索对象。
* 
在搜索内容时,将会忽略前导通配符。例如,如果您对 *ite* 执行关键字搜索,则将返回内容文件中包含诸如 "item" 和 "iteration" 之类的术语的对象。但是,将会忽略内容文件中包含诸如 "white" 或 "criteria" 之类的术语的对象。
有关详细信息,请参阅高级搜索使用案例情景使用通配符进行关键字搜索
前导或尾随问号 (?)
关键字搜索字符串开头或末尾的问号 (?) 可用零个或一个字符进行替换。
例如,如果要搜索 specification?,则结果将包括 "specification"、"specifications" 和 "SpecificationA"。
类似地,?end 将返回 "end"、"bend" 和 "send"。
* 
此行为对于索引搜索是唯一的,因为在数据库搜索中,问号不可用零个字符进行替换。
空格
通配符用于单个关键字搜索时,无法替换多个字符串之间的空格。
例如,对 product*specification 的搜索将会成功返回针对以下各项的结果:
product001specification
product_specification
ProductSpecification
但是,不会返回以下结果:
Product Specification
Product001 Specification
Product%%Specification
* 
Windchill Index Search 会将某些特殊字符视为空格。例如,名为 "Product%%Specification" 的对象将作为以下两个字符串进行索引:"product" 和 "specification"。因此,使用关键字 product*specification 针对此对象执行的搜索操作将会失败。
有关详细信息,请参阅关键字中的特殊字符