0

I will have a projects site collection which will hold a subsite for each project. These project sites will be created based on a list on the root site. The project list will have fields like Subdepartment, priority, project team and others.

The project subsites will have some document libraries and content types.

I want to find back documents stored there based on the project metadata, example subdepartment. As you can see this field is not in the document itself, I could perhaps add it as an indexed property on subsite creation.

I know about CEWS, but I wonder if there is a different approach

1

I have used a different approach with out of the box features. This technique will allow you to model your entire organization structure and have reach across your entire farm, not limit you to just one site collection. This approach uses Managed Metadata, Content Type Publishing, and Search.

  • Managed Metadata: store your Subdepartment, priority, project team and others as Term Sets in the Term Store. Then create a site Content Type that inherits and extends Document with these terms at Site Collection X. We will call this new content type: ProjectDocument.

If you are not using Managed Metadata, you need to - it is the best new SharePoint feature post MOSS, IMO. One reason, if a Subdepartment name changes (it will) then you can change it (or obsolete it, or make a synonym) in the Term Set and it will ripple this change across the Farm. Another reason, is that it handles hierarchical terms (up to 7 levels) which is nice.

  • Then set up Content Type Publishing and make Site Collection X the hub that publishes ProjectDocument to the other site collections in your Farm. Then it doesn't matter which site collection the project subsite is created , the ProjectDocument Content Type will be there. Set default values on these columns for Document Libraries where the values are known. For example set default for Subdepartment as Operations->EMEA for the Document Libraries in the EMEA Ops site or site collection.

  • Then SharePoint Search out of the box will index all documents and takes special care for the Managed Metadata fields. When results are displayed, a Managed Metadata term filter refinement Box will automatically be displayed on the left of your search results if any of these tagged ProjectDocument are in the results. This will allow your users hone in any search to show just results that were tagged with Subdepartmnet of Operations->EMEA for example.

  • Lastly and most important step is train your users on how to tag their documents, create defaults and refine the Term Sets as it changes over time.

1

If I've understood well, you are talking about search pages and you want to search on a specific site, based on words you put in search. For example an input could be: projectLemon chris Evans, where projectLemon uniquely identifies the project

If the results are from one site, then for every word in search input, you search it in the project list - if it's found, redirect to search this specific site: The Url for searching can be easily modified: From http://projectserver.com/_layouts/15/osssearchresults.aspx could redirect to http://projectserver.com/projectLemon/_layouts/15/osssearchresults.aspx

If the results could be from multiple sites, then add to the project list another column (say aaaa), uniquely identifying the project (site) and on event receiver itemAdded, add this to the item - this can be done with content type receiver, thus you won't need to do it for every project subsite.

Then, again you modify the search input. For example,let assume that there are 5 high priority projects and Subdepartmen1 has 10 projects some with high priority and some with low priority. For input HighPriority Subdepartmen1, you go to the list and CAML the two parameters.Let's say you get 3 results, i.e. 3 items from project list.

You redirect (or show!)the same page with input the words : results[0].aaa OR results[1].aa OR a results[2].aa AND [and any other words]

The basic idea is to uniquely identify the items inside a subsite. The field aaa would uniquely identify them.

This solution would only need to add a field in content types, create event receivers and fiddle wit the search input. Yet, I believe it's not hard - time consuming, yes.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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