我正在尝试使用KQL查询SharePoint列表,其中包括名称中包含空格的列表的某些属性。 例如:
Src State:"WA" Prod Id:"X12" SomeFreeText PATH:http://server/sites/items/New%20Items/*
自由文本过滤器在单独使用时按预期工作,但在包含这些属性过滤器时不返回任何内容,例如“Src State”。
我认为这是名称中的空格问题。所以,我已经尝试将空格更改为“%20”和“ x0020 ”,甚至将属性名称括在引号(单引号和双引号)之间,但未找到结果!
我缺少什么?
答案 0 :(得分:2)
如果你想在列表上运行KQL搜索,它比使用列名更复杂一点。 KQL是Search Service的一部分,列必须成为托管属性。托管属性名称不能包含空格。 SharePoint会自动从站点列创建托管属性,但如果该列直接添加到列表(而不是站点列),则必须在“搜索管理”中手动创建托管属性。
因此,如果列是站点列,则有关如何创建托管属性名称的特定命名约定(https://technet.microsoft.com/en-us/library/jj613136.aspx)。如果" Src State"和"产品ID"列很简单(比如Text或Choice),那么下面的查询应该可以工作:
SrcStateOWSTEXT:"WA" ProdIdOWSTEXT:"X12" SomeFreeText PATH:http://server/sites/items/New%20Items/*
如果这不起作用 - 请检查搜索管理中的搜索架构是否已创建这些列的托管属性。如果没有,那么您将必须手动创建它们并重新索引/重新加载列表内容。有关如何执行此操作的说明,请访问:https://technet.microsoft.com/en-us/library/jj219667.aspx