SharePoint搜索SQL:在位置及以下搜索(动态)

时间:2010-11-30 13:03:26

标签: sharepoint search

我有一个客户端应用程序,它代表任何给定的第三个恶意SharePoint站点的完整SharePoint结构(sitecollections,sites& subsites,doclibs,文件夹),作为导航树。

用户可以单击该树中的任何级别,并进行自由文本搜索。他们希望他们的搜索结果来自所选位置或以下。例如,

  • 如果他们点击某个网站,他们只需要该网站内的结果。
  • 如果他们点击文件夹,他们只需要来自该文件夹和任何子文件夹的结果。

    我正在尝试使用PATH属性的限制来实现此目的。但是,每当我在PATH上包含LIKE谓词时,搜索结果都会变为空。我做错了什么?

    SharePoint Search SQL:

    SELECT 
      URL,Path,FileName,Version,Size,LastModifiedTime,DocID 
    FROM 
      Scope() 
    WHERE 
      ContentClass='STS_ListItem_DocumentLibrary' AND 
      Path LIKE 'http://servername/doclib001/%' AND 
      FREETEXT(DEFAULTPROPERTIES, 'test' )
    

    (SharePoint2010)

  • 1 个答案:

    答案 0 :(得分:1)

    查询路径似乎永远不会产生任何结果。但是,使用equals谓词运算符查询站点正是我想要的,即

    SELECT  
      URL,Path,FileName,Version,Size,LastModifiedTime,DocID  
    FROM  
      Scope()  
    WHERE  
      ContentClass='STS_ListItem_DocumentLibrary' AND  
      Site = 'http://servername/doclib001' AND  
      FREETEXT(DEFAULTPROPERTIES, 'test' ) 
    

    从doclib001以及doclib001 / folder001及以下产生结果。这是相当出乎意料的,因为(a)网站建议网站/网站,而不是任意网址和(b)我使用的是精确相等的运算符,而不是像/包含......但它运行良好,所以我不是抱怨!

    到目前为止,非递归搜索似乎不太可能。