SharePoint Search SQL: поиск по местоположению и ниже (динамический) - PullRequest
4 голосов
/ 30 ноября 2010

У меня есть клиентское приложение, которое представляет полную структуру SharePoint (коллекции сайтов, сайты и дочерние сайты, документы, папки) любого заданного 3-х парного сайта SharePoint в виде дерева навигации.

Пользователи могут щелкнуть любой уровень в этом дереве и выполнить поиск в свободном тексте. Они ожидают, что их результаты поиска появятся в выбранном месте или ниже. Например,

если они нажимают на сайт, они хотят получить результаты только с этого сайта. если они щелкают по папке, им нужны результаты только из этой папки и любых подпапок.

Я пытаюсь сделать это, используя ограничение свойства PATH. Однако всякий раз, когда я включаю предикат LIKE в PATH, результаты поиска оказываются пустыми. Что я делаю не так?

SQL поиска SharePoint:

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 Ответ

1 голос
/ 01 декабря 2010

Запрос пути никогда не дает никаких результатов.Однако запрос к сайту с помощью оператора предиката 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 и ниже.Что довольно неожиданно, учитывая, что (а) сайт предлагает сайт / веб, а не произвольный URL-адрес и (б) я использую оператор точного равенства, а не аналог / содержит ... но он работает хорошо, поэтому я неЖалобы!

Некурсивные поиски пока кажутся довольно невозможными.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...