在Sharepoint KQL中:如何查询名称中带有空格的列表属性?

在Sharepoint KQL中:如何查询名称中带有空格的列表属性?,sharepoint,Sharepoint,我正在尝试使用KQL查询SharePoint列表,其中包括该列表中名称中有空格的一些属性。 例如: 自由文本筛选器在单独使用时按预期工作,但在包含那些属性筛选器(如“Src State”)时不返回任何内容 我认为这是名称中的空格有问题。因此,我尝试将空格改为“%20”和“x0020”,甚至将属性名括在引号之间(单引号和双引号),但没有找到结果 我缺少什么?如果您想在列表上运行KQL搜索,它比只使用列名要复杂一点。KQL是搜索服务的一部分,列必须成为托管属性。托管属性名称不能包含空格。ShareP

我正在尝试使用KQL查询SharePoint列表,其中包括该列表中名称中有空格的一些属性。 例如:

自由文本筛选器在单独使用时按预期工作,但在包含那些属性筛选器(如“Src State”)时不返回任何内容

我认为这是名称中的空格有问题。因此,我尝试将空格改为“%20”和“x0020”,甚至将属性名括在引号之间(单引号和双引号),但没有找到结果


我缺少什么?

如果您想在列表上运行KQL搜索,它比只使用列名要复杂一点。KQL是搜索服务的一部分,列必须成为托管属性。托管属性名称不能包含空格。SharePoint会自动从网站列创建托管属性,但如果该列直接添加到列表中(而不是作为网站列),则必须在搜索管理中手动创建托管属性

因此,如果列是站点列,那么对于托管属性名称的创建方式有一个特定的命名约定()。如果“Src State”和“Prod Id”列很简单(比如Text或Choice),那么以下查询应该可以工作:

SrcStateOWSTEXT:"WA" ProdIdOWSTEXT:"X12" SomeFreeText PATH:http://server/sites/items/New%20Items/*

如果这不起作用-请检查搜索管理中的搜索架构是否已创建这些列的托管属性。如果没有,则必须手动创建它们并重新索引/重新爬网列表内容。有关如何操作的说明如下:

最后,我们决定采用另一种方法:首先获取文档。使用KQL按自由文本过滤,然后使用CAML获取文档的所有属性,然后按属性过滤。这仍然不是最优的,但实施起来比正确的解决方案要快。下一次,我们将开始制作站点属性。谢谢
SrcStateOWSTEXT:"WA" ProdIdOWSTEXT:"X12" SomeFreeText PATH:http://server/sites/items/New%20Items/*