属性限制关键字查询
上次修改时间: 2015年3月9日
适用范围: SharePoint Server 2010
使用 SharePoint Server 2010 中的 SharePoint 企业级搜索关键字语法,可以构造一些查询,这些查询使用属性限制来缩小查询范围以仅匹配基于指定条件的结果。
指定属性限制
基本属性限制包括:
<Property Name><Property Operator><Property Value>
以下是有效关键字语法属性限制的一些示例:
author :"John Smith"
返回由 John Smith 编写的内容项。
filetype:docx
返回 Microsoft Word 文档。
filename:budget.xlsx
返回文件名为 budget.xlsx 的内容项。
属性限制不得在属性名称、属性运算符和属性值之间包含空格,否则会将属性限制视为自定义文本查询。属性限制的长度限于 2,048 个字符。
在以下示例中,由于存在空格,查询将返回包含词"author"和"John Smith"的内容项,而不是返回由 John Smith 编写的内容项:
author: "John Smith"
author :"John Smith"
author : "John Smith"
这与以下示例等效:
author "John Smith"
属性名称
必须为属性限制指定有效的托管属性名称。默认情况下,SharePoint 企业级搜索包含文档的多个托管属性。
若要为一个已爬网属性值指定属性限制,则必须先将该已爬网属性映射到一个托管属性。有关详细信息,请参阅规划最终用户搜索体验中的"托管和已爬网属性"一节。
下列托管属性设置之一必须为 true:
Retrievable,可将属性值存储在属性存储数据库中。
FullTextQueriable,可将属性值存储在全文本索引中。
属性运算符
SharePoint 企业级搜索支持多个新属性运算符。表 1 列出了可在属性限制中使用的有效属性运算符。
表 1. 属性限制的有效属性运算符
运算符 |
说明 |
支持的托管属性类型 |
---|---|---|
: |
返回一些结果,在这些结果中,属性限制中指定的值等于存储在属性存储数据库中的属性值,或匹配全文本索引中存储的属性值中的单个词。 |
|
= |
返回一些搜索结果,在这些搜索结果中,属性值等于属性限制中指定的值。 |
|
< |
返回一些搜索结果,在这些搜索结果中,属性值小于属性限制中指定的值。 |
|
> |
返回一些搜索结果,在这些搜索结果中,属性值大于属性限制中指定的值。 |
|
<= |
返回一些搜索结果,在这些搜索结果中,属性值小于或等于属性限制中指定的值。 |
|
>= |
返回一些搜索结果,在这些搜索结果中,属性值大于或等于属性限制中指定的值。 |
|
<> |
返回一些搜索结果,在这些搜索结果中,属性值不等于属性限制中指定的值。 |
|
.. |
返回一些搜索结果,在这些搜索结果中,属性值位于属性限制中指定的范围之内。 |
|
属性值
必须指定一个作为托管属性类型的有效数据类型的属性值。下表列出了这些类型映射。
表 2. 有效数据类型映射
托管类型 |
数据类型 |
---|---|
文本值
对于文本属性值,匹配行为依赖于属性是存储在全文本索引中还是属性存储数据库中。
全文本索引中的属性值
当托管属性的 FullTextQueriable 属性设置为 true 时,属性值将存储在全文本索引中。可以只为字符串属性进行此配置。将针对存储在全文本索引中的属性值中的单个词匹配查询中指定的属性值。
例如,如果搜索由 Paul Shakespear 编写的内容项,则以下关键字查询将返回匹配结果:
author:Shakespear
author:Paul
还支持前缀匹配。可以使用通配符运算符 (*),但在指定单个字时无需这样做。继续上一个示例,以下关键字查询将由 Paul Shakespear 编写的内容项作为匹配项返回。
author:Shakesp
author:Shakesp*
在为属性值指定短语时,匹配结果必须包含存储在全文本索引中的属性值内的指定短语。以下查询示例将返回标题中带有文本"Advanced Search"的内容项,如"Advanced Search XML"、"Learning About the Advanced Search Web Part"等:
title:"Advanced Search"
还支持对属性值中指定的短语使用前缀匹配,不过必须在查询中使用通配符运算符 (*),并且仅在短语的末尾支持前缀匹配,如下所示:
title:"Advanced Sear*"
以下查询不返回预期结果:
title:"Advan* Search"
title:"Advanced Sear"
属性存储数据库中的属性值
当托管属性的 Retrievable 属性设置为 true 时,属性值将存储在属性存储数据库中。可以为任何托管属性类型配置此设置。将针对属性的整个值匹配查询中指定的属性值。例如,若使用一个名为 company 的托管属性,并且在配置中将 Retrievable 属性设置为 true,并将 FullTextQueriable 设置为 false,则以下关键字查询将匹配其中公司为 Adventure Works 的内容项:
company:"Adventure Works"
以下查询将不会在结果中返回这些内容项:
company:Adventure
company:Works
company:"Adventure W*"
数值
对于包含 Integer、Decimal、Binary 和 YesNo 托管类型的数字属性值,将针对属性的整个值匹配属性限制。以下示例将匹配大小为 100 KB 的内容项:
size:100KB
以下关键字查询示例将不会匹配这些内容项:
size:10
size:10*
多个属性限制
SharePoint 企业级搜索支持在同一关键字查询中使用多个属性限制。可以对多个属性限制使用同一属性,也可以对每个属性限制使用不同的属性。
在使用同一属性限制的多个实例时,匹配项将基于关键字查询中属性限制的并集。匹配项将包括由 John Smith 或 Jane Smith 编写的内容项,如下所示:
author:"John Smith" author:"Jane Smith"
这在功能上与使用 OR 布尔运算符相同,如下所示:
author:"John Smith" OR author:"Jane Smith"
在使用不同的属性限制时,匹配项将基于关键字查询中属性限制的交集,如下所示:
author:"John Smith" filetype:docx
匹配项将包括由 John Smith 编写的 Microsoft Word 2010 文档。这在功能上与使用 AND 布尔运算符相同,如下所示:
author:"John Smith" AND filetype:docx