I'm trying to get files from a Site... When i launch my query the crawler returns me data from all application on the SP installation..

The thing I'd like to do is to "restrict" this scope to a single site or site collection..

How could i do?

My code is something like this:

fullsite = URL;
myToken = UserToken;

Microsoft.SharePoint.SPSecurity.RunWithElevatedPrivileges(delegate()
            {
                using (SPSite scSite = new SPSite(fullsite, myToken))
                {
                    if ((searchAllObj.tt_group_array == null) || (searchAllObj.tt_group_array.Length == 0))
                    {
                        using (SPWeb webRoot = scSite.OpenWeb())
                        {
                            webRoot.AllowUnsafeUpdates = true;
                            scSite.AllowUnsafeUpdates = true;

                            queryComposta = "keyword + Tag:Tag1 Network:NT"; //Tag and Network are working props                                  

                            KeywordQuery keywordQuery = new KeywordQuery(scSite);
                            keywordQuery.ResultTypes = ResultType.RelevantResults;
                            keywordQuery.QueryText = queryComposta.ToString();

                            ResultTableCollection searchResultTables = keywordQuery.Execute();
                  }
            }
      });

EDIT: I'm on SP Foundation with search server 2010 express installed!

link|improve this question

68% accept rate
feedback

3 Answers

up vote 3 down vote accepted

I suppose KeywordQuery.HiddenConstraints property can help. http://www.mstechblogs.com/paul/sharepoint-2010-keywordquery-and-the-hiddenconstraints-property. It appears that you can define scope restrictions with it. And there's a scope for limiting query to particular site: This Site: (http://technet.microsoft.com/en-us/library/gg185660.aspx).

link|improve this answer
Whenever I add " keywordQuery.HiddenConstraints = "This Site: ReplyCorp"; " (where ReplyCorp IS the effective name of the site) it returns to me the list which contains item but not the item itself (and before it works).. Is something else to set? – Ziba Leah Feb 14 at 16:50
1  
Here's(msdn.microsoft.com/en-us/library/…) the suggestion: For a contextual scope like "This Site" use: instance.HiddenConstraints = "site:\"[url to your site]\""; – Alex Boev Feb 14 at 16:55
With site:\"ReplyCorp\" doesn't find any result.. – Ziba Leah Feb 14 at 18:00
feedback

Simply append the following to your search query:

site:"your-site-url"
link|improve this answer
This way doesn't find any result.. I tried with relative and absolute url.. – Ziba Leah Feb 14 at 18:04
feedback

Check this article : http://extreme-sharepoint.com/2011/10/28/sharepoint-keywordquery/. See the section Using Scopes in KeywordQuery

link|improve this answer
feedback

Your Answer

 
or
required, but never shown

Not the answer you're looking for? Browse other questions tagged or ask your own question.