Semantic MediaWiki提供了不同的搜索操作符,使用户可以细化搜索条件和标准。
通配符[编辑]
通配符写为“+
“并允许给定条件的任何值。例如,[[出生于::+]]
返回属性“Born in”具有任何值的所有页。请注意“+
“只能自己使用。请参阅一节喜欢,不喜欢对于通配符“*
“和”?
".
比较器[编辑]
比较器是一种特殊符号,如<
或>
。它们放置在::
在财产条件下。
>> 和<<
|
“大于”和“小于” |
> 和<
|
默认为“大于或等于”和“小于或等于”,但如果配置参数$smwStrict比较程序 设置“>”和“<”比较器是否应严格设置为真的 . |
≥ 和≤
|
“大于或等于”和“小于或等于” |
!
|
“不”(“不相等”) |
~ 和!~
|
字符串的“like”和“not like”比较 |
比如: 和例如:
|
字符串的“like”和“not like”比较(可选) |
例如,
[[区号::>>415]]
比较器只适用于属性值,而不适用于类别上的条件。wiki安装可以限制哪些比较器可用,这是由管理员通过将设置修改为配置参数$smwgQ比较程序
设置用于正则表达式的查询支持的比较器字符列表。如前所述。
将比较器应用于页面时,将使用页面的标题(不带命名空间前缀)。但是,可以通过设置另一个维基百科该页面的排序键,例如。{{DEFAULTSORTKEY:自定义密钥}}
请标记这适用于所有比较器,包括!和~。一个页面不可能有多个排序键。特别是,在应用比较器时不考虑重定向页面。
不相等[编辑]
您可以选择属性值不等于给定值的页面。例如,
[[区号::!415]]
将选择区号不是“415”的页面。请注意,此查询描述不查找满足以下条件的页面不有区号415。相反,它会查找代码不等于415的所有页面。特别是,根本没有区号的页面不能是上述查询的结果。
与(默认)相等比较器一样自定义单位可能需要在数字转换中进行舍入,这可能会导致意外结果。例如,[[高度::!6.00英尺]]
可能仍然会选择身高显示为«6.00英尺»的人,因为准确的数字值实际上不是6。在这种情况下,查询属性值超出特定范围的页面可能会更有用,可以通过使用<和>进行条件的析取(见下文)来表示。
喜欢,不喜欢[编辑]
本节仅描述~
/!~
.此语法(但不是比如:
/例如:
)如果全文检索已启用;请参阅全文搜索指南。默认行为无法在当前wiki或Sandbox网站上演示,因为这两个网站都使用全文搜索。
Semantic MediaWiki支持在查询中使用“like”和“not like”条件。有两种不同的符号可供使用,其行为略有不同:
~
和!~
比如:
和例如:
(自语义媒体Wiki 3.0.02018年10月11日发布,与MW 1.27.0-1.31.x兼容。),它依赖于标准的LIKE/NOT LIKE SQL语法进行模式匹配。1
在LIKE条件下,使用“*
“通配符匹配任意字符序列和”?
“匹配任何单个字符。例如,可以询问[[地址:~*Park Place*]]
选择包含字符串“Park Place”的地址,或[[荣誉:~M?.]]
选择“先生”和“女士”。
这些比较器仅适用于数据类型“文本”保存任意长度的文本,数据类型“Page”保存wiki页面的名称,并将其显示为链接,数据类型“电子邮件”保留电子邮件地址,数据类型“电话号码”根据副本请求3966标准和数据类型“日期”保持特定的时间点.[1]
通配符不起作用名称空间。所以类似于[[~Proje?k::Park Place]]
将不起作用。
- 字符串长度
可搜索字符串长度取决于多个因素:
- 特殊字符
注意,当与比较器结合使用时,一些特殊字符需要屏蔽“~
".
例如,属性“Path”数据类型“文本”保存任意长度的文本将类似“n:\path\morepath”的内容作为数据值。要查询属性“path”中包含“n:\path\…”的所有页面,需要屏蔽反斜杠\
“对于您的查询,如下所示:
{{#提问:[[路径::~n:\\Path\\+]]...}}
宽松和严格的比较[编辑]
默认情况下,<
和>
充当“松散”比较运算符:它们表示“小于或等于”和“大于或等于”。它们在功能上等价于≤和≥。
如果你习惯了<
和>
“小于”和“大于”。作为管理员,您可以通过设置配置参数$smwStrict比较程序
设置“>”和“<”比较器是否应严格到真的
。不同的行为记录在关于严格比较器.
大于或等于、小于或等于[编辑]
使用数值时,您通常希望选择属性值在特定范围内的页面。例如
[[类别:演员]][[身高::>6英尺][[高度::<7英尺]]
要求所有身高在6英尺到7英尺之间的演员。注意,这利用了自动单位转换:即使演员的高度设置为[[高度:195cm]]
这将被视为正确答案(前提是高度的数据类型能够理解这两个单位,请参见自定义单位). 注意,比较器表示大于/小于或同等级别–等号“=
“不需要。
也可以用或
条件:2
[[类别:演员]][[身高:>6英尺||<7英尺]]
如果可以以自然方式对值进行排序,那么属性值的此类范围条件最为相关。例如,询问是有意义的[[开始日期::>2006年5月6日]]
但这样说并没有什么帮助[[主页URL::>https://www.example.org]]
.
如果数据类型没有自然线性排序,Semantic MediaWiki将只对标准化数据值应用字母顺序,因为它们在RDF导出。因此,您可以使用大于和小于来选择的属性的字母范围数据类型“字符串”最多可容纳255个字符的字符序列例如,你可以问[[姓氏::>Do]][[姓氏::<G]]
在“Do”和“G”之间选择姓氏。对于wiki页面,比较器引用给定页面的名称(不带名称空间前缀)。
在这里以及在比较器的所有其他用法中,可能会发生这样的情况:搜索的值实际上是以这样的符号开始的<
在这种情况下,如果在后面插入空格,则可以防止SMW将符号解释为比较器::
例如,[[属性::<br>]]
真正搜索给定属性的值为“<br>”的页面。
大于,小于[编辑]
有时你可能想从结果本身中排除精确的值,例如,要找到一个比休·劳里(1.89米)高的演员,你可以使用“>
“比较器和”!
“比较器:
[[类别:演员]][[身高::>1.89m]][[[身高::!1.89m]
包含运算符符号的值[编辑]
如果给定属性的值以以下符号之一开头,则可能会出现这种情况:<,≤,>,≥,=!和~。为了确保Semantic MediaWiki能够处理这些情况,值表示法是对空格敏感的。为了避免混淆,在后面插入空格::
例如,[[属性::<br>]]
真正搜索给定属性的值为“<br>”的页面。
不区分大小写[编辑]
从开始语义媒体Wiki 3.0.02018年10月11日发布,与MW 1.27.0-1.31.x兼容。三4可以对例如。数据类型“Page”保存wiki页面的名称,并将其显示为链接,数据类型“文本”保存任意长度的文本,数据类型“代码”保存预先格式化的技术文本(类似于数据类型文本)和数据类型“URL”保存URI、URN和URL(blob类型,即字符串或文本)使用SMW_字段_字符_本地
选择配置参数$smwgFieldTypeFeatures($smwg字段类型功能)
设置关系数据库特定的字段类型功能.
以下四个示例将概述启用与否此功能的一般差异:
- 示例1
属性“有文本”,共数据类型“文本”将“CAseInSensitiveSearch”作为数据值保存在“Example”页上。如果启用查询编号1至3,如果未启用(默认),查询编号1到3也将选择页面“示例”:
{{#ask:[[有文本::~CASEIN*]]|?有文本}}
{{#ask:[[Has text::~casein*]]|?Has text}}
{{#ask:[[有文本::~CAseIn*]]|?有文本}}
- 示例2
属性“具有第页”,共页数据类型“Page”将“CAseInSensiveSearch”作为“示例”页上的数据值。如果启用了查询1和查询2,如果未启用(默认),查询3将选择页面“示例”:
{{#ask:[[有页面::~CASEIN*]]|?有页面}}
{{#ask:[[Has page::~casein*]]|?Has page}}
{{#ask:[[Has page::~CAseIn*]]|?Has page}}
- 示例3
属性“具有文本”数据类型“文本”将“CAseIn”作为数据值保存在“Example”页上。如果启用查询1至3,如果不启用(默认),查询3将选择页面“示例”:
{{#ask:[[有文本::CASEIN]]|?有文本}}
{{#ask:[[有文本::casein]]|?有文本}}
{{#ask:[[有文本::CAseIn]]|?有文本}}
- 示例4
属性“具有第页”,共页数据类型“Page”将“CAseIn”作为数据值保存在“Example”页上。如果启用了查询3,如果未启用(默认),查询3将选择页面“示例”:
{{#ask:[[有页面::CASEIN]]|?有页面}}
{{#ask:[[Has page::casein]]|?Has page}}
{{#ask:[[有页面::CAseIn]]|?有页面}}