搜索运算符

来自semantic-mediawiki.org
跳转到:航行,搜索
目录

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]]将不起作用。
字符串长度

可搜索字符串长度取决于多个因素:

  • 对于数据类型“Page”保存wiki页面的名称,并将其显示为链接(所有SMW版本)所有255个字符都是可搜索的。
  • 对于数据类型“文本”保存任意长度的文本(SMW≥1.8.x)[2]可搜索字符串限制为
    • 如果超过72个字符被存储为属性值,则前40个字符,
    • 所有72个字符,如果最多72个字符存储为属性值,
    • 如果可搜索长度通过设置配置为300$smwgFieldTypeFeatures($smwg字段类型功能)至SMW_FIELDT_CHAR_LONG。
特殊字符

注意,当与比较器结合使用时,一些特殊字符需要屏蔽“~".

例如,属性“Path”数据类型“文本”保存任意长度的文本将类似“n:\path\morepath”的内容作为数据值。要查询属性“path”中包含“n:\path\…”的所有页面,需要屏蔽反斜杠\“按如下方式查询:

{{#提问:[[路径::~n:\\Path\\+]]...}}

范围[编辑]

宽松而严格的比较[编辑]

默认情况下,<>充当“松散”比较运算符:它们表示“小于或等于”和“大于或等于”。它们在功能上等价于≤和≥。

如果你习惯了<>“小于”和“大于”。作为管理员,您可以通过设置配置参数$smwStrictComparators($smwStrictComparators)设置“>”和“<”比较器是否应严格真的。不同的行为记录在关于严格比较器.

大于或等于、小于或等于[编辑]

使用数值时,您通常希望选择属性值在特定范围内的页面。例如

[[类别:演员]][[身高::>6英尺][[高度::<7英尺]]

要求所有身高在6英尺到7英尺之间的演员。注意,这利用了自动单位转换:即使演员的高度设置为[[高度:195cm]]这将被视为正确答案(前提是高度的数据类型能够理解这两个单位,请参见自定义单位). 注意,比较器表示大于/小于或同等级别–等号“=”是不需要的。

也可以用条件:2

[[类别:演员]][[身高:>6英尺||<7英尺]]

如果可以以自然的方式对值进行排序,则属性值的此类范围条件最为相关。例如,询问是有意义的[[开始日期::>2006年5月6日]]但这样说并没有什么帮助[[主页URL::>https://www.example.org]].

如果数据类型没有自然线性排序,Semantic MediaWiki将只对标准化数据值应用字母顺序,因为它们在RDF导出。因此,可以使用大于和小于来选择属性的字母范围数据类型“字符串”最多可容纳255个字符的字符序列例如,你可以问[[姓氏::>做]][[姓::<G]]在“Do”和“G”之间选择姓氏。对于wiki页面,比较器引用给定页面的名称(不带名称空间前缀)。

在这里以及在比较器的所有其他用法中,可能会发生这样的情况:搜索的值实际上是以这样的符号开始的<在这种情况下,如果在后面插入空格,则可以防止SMW将符号解释为比较器::例如,[[属性::<br>]]真正搜索给定属性的值为“<br>”的页面。

大于、小于[编辑]

有时,您可能想从结果本身中排除精确的值,例如,要找到一个比Hugh Laurie(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_FIELDT_CHAR_NOCASE公司选择配置参数$smwgFieldTypeFeatures($smwg字段类型功能)设置关系数据库特定的字段类型功能.

这个全文搜索功能在大多数情况下,优于此处描述的功能。

以下四个示例将概述启用与否此功能的一般差异:

示例1

属性“具有文本”数据类型“文本”将“CAseInSensitiveSearch”作为数据值保存在“Example”页上。如果启用查询编号1至3,如果未启用(默认),查询编号1到3也将选择页面“示例”:

  1. {{#ask:[[有文本::~CASEIN*]]|?有文本}}
  2. {{#ask:[[Has text::~casein*]]|?Has text}}
  3. {{#ask:[[有文本::~CAseIn*]]|?有文本}}
示例2

属性“具有第页”,共页数据类型“Page”将“CAseInSensitiveSearch”作为数据值保存在“Example”页上。如果启用了查询1和查询2,如果未启用(默认),查询3将选择页面“示例”:

  1. {{#ask:[[有页面::~CASEIN*]]|?有页面}}
  2. {{#ask:[[Has page::~casein*]]|?Has page}}
  3. {{#ask:[[有页面::~CAseIn*]]|?有页面}}
示例3

属性“具有文本”数据类型“文本”将“CAseIn”作为数据值保存在“Example”页上。如果启用查询1至3,如果不启用(默认),查询3将选择页面“示例”:

  1. {{#ask:[[有文本::CASEIN]]|?有文本}}
  2. {{#ask:[[有文本::casein]]|?有文本}}
  3. {{#ask:[[有文本::CAseIn]]|?有文本}}
示例4

属性“具有第页”,共页数据类型“Page”将“CAseIn”作为数据值保存在“Example”页上。如果启用了查询3,如果未启用(默认),查询3将选择页面“示例”:

  1. {{#ask:[[有页面::CASEIN]]|?有页面}}
  2. {{#ask:[[Has page::casein]]|?Has page}}
  3. {{#ask:[[有页面::CAseIn]]|?有页面}}

  1. 在SMW≤1.7.x的情况下,这些比较器用于数据类型“字符串”最多可容纳255个字符的字符序列(而非文本)和数据类型“Page”保存wiki页面的名称,并将其显示为链接.支持数据类型“电子邮件”保存电子邮件地址1,数据类型“电话号码”根据副本请求3966标准1数据类型“日期”保持特定的时间点2于引入语义媒体Wiki 1.3.0于2008年9月7日发布,与MW 1.12.x-1.15.x兼容。.
  2. 万一数据类型“字符串”最多可容纳255个字符的字符序列(SMW≤1.7.x)所有255个可存储字符均可搜索。看看这个邮寄列表以获取详细信息.

工具书类

  1.  b条 | 语义MediaWiki:GitHub拉取请求高:轻:1129
  2. ^ | 语义MediaWiki:GitHub拉取请求高:窄:1178