Methods to Finding Items in SharePoint 2010
Searching in SharePoint
Search in SharePoint 2010 is an improvement from SharePoint 2007. The experience when a user wants to search in SharePoint is, for the most part, still the familiar “one textbox” approach. The user inputs the term she wants to search for into this textbox and then clicks the search button.
SharePoint Search is easy to use when doing free-text search. As you read the rest of this page, you’ll see that it’s doable to do advanced searches in SharePoint but it’s far from easy from an installation, configuration, and customization point-of-view. Recognize also that there are certain search situations where the search results are just not that simple to consume using SharePoint Search Server or FAST Search.
Taxonomy and Managed Metadata
A powerful new feature in SharePoint 2010 is Managed Metadata. Metadata can be used as a classification mechanism for different types of SharePoint content.Examples:
- Telecomm Provider
The feature was available in SharePoint 2007 but it was difficult for organizations to deploy farm-wide. This feature was called Content Type back in SharePoint 2007. The new Managed Metadata Service in SharePoint 2010 offers a new way to look at content types and metadata. It allows organizations to provide a collection of metadata to all sites within the SharePoint Farm.
The new Managed Metadata Service in SharePoint 2010 improves upon the concept of filtering in SharePoint. These features allow for multilevel filtering within managed metadata columns.
“Shouldn’t things be automatically easier to search or filter because we now have SharePoint 2010 and Managed Metadata Services?”
In many situations, yes, your experience searching for items using list column data just got easier in SharePoint 2010. For example, with multi-national companies or organizations classifying their SharePoint content by country, they can use a Country Term-Set and have Terms such as USA, UK, Germany, Canada, Japan, China, etc. Now they should be able to sort and find items by country. (Please take note that Managed Metadata is available only in SharePoint Server 2010; Managed Metadata is not included in SharePoint Foundation 2010).
We used countries as an example. What about cities? There are simply too many cities in the world that it would be impractical to create a City Term-Set. Managed Metadata Services would not be viable if you have requirements like in the following examples:
- Search for vendors serving District of Columbia
- Find contacts living in Los Angeles
- Search for expense-reports related to the Microsoft Las Vegas SharePoint Conference (City column value is Las Vegas)
List View Filters
“Well, I can just create filters for my list views. This is a piece-of-cake!”
You can create views that filter your lists or libraries. The Human Resources (HR) group can create “Expense Reports – [City]” views. But as mentioned before, there are just too many cities in the world; you’ll end up creating unnecessary SharePoint views with the intent of simply being able to produce ad hoc reports related to a city.
Other scenarios where list-view filters would be impractical:
- Issues resolved on a certain calendar month. Imagine implementing this query by adding new “Issues resolved in [Calendar Month]” views. You’ll end up with countless views as time goes by!
- Search for products by price range. Too many permutations of price ranges. If you’re searching for car prices, wouldn’t it be more powerful to specify a price “between $16,000 and $18,000” (a structured search) than to click a link for “cars under $20,000” (a view)?
- Commercial properties at a specific ZIP code. Would you create a view for each ZIP code in the United States? There are thousands of ZIP codes in the United States!
Typical SharePoint scopes include All Sites, This Site, This List, and People. For example, if your search term is Virginia, you specify People as your scope if looking for a person. But if you scope the search-term Virginia for All Sites, This Site, or This List: what do you get? You might get any of the following:
- Documents whose author is named Virginia.
- Documents or list-items containing the term Virginia anywhere—it could be in the document, Title field, or Description field.
Perhaps, what you really want to look for is something more along the lines of:
- Contacts living in the state of Virginia
- Expense-reports filed by corporate offices in the state of Virginia
You will really need advanced search capabilities if you want to target specific columns that cannot be easily standardized using Managed Metadata Services.
There is a built-in feature in SharePoint 2010 where it’s possible to do some advanced searches: the Search Center.
The Search Center is a special type of SharePoint site template. It provides a simple textbox like below:
Search Center Textbox
This is perfect for free-text search or unstructured search. If you want to perform advanced search or structured search, you can click the Advanced hyperlink. If you look below, you see that only the “typical columns” appear to be searchable:
You can make additional properties appear here but it will require a SharePoint developer or engineer. Knowledge of XML and proficient understanding of SharePoint metadata are required. You must also have those properties indexed. If those properties are not indexed, you cannot search them in Search Center Advanced mode.
“We have a super SharePoint engineer. He knows his XML stuff. We’ll have him index our properties so that we can do advanced searches in Search Center!”
You can index additional properties. However, did you know that there is a delay when you input content into SharePoint and when it can be returned in a search result?
Search Crawl/Indexing Schedules
Just because you entered the data into SharePoint doesn’t mean you can surface it in search results right away. There is a delay. The SharePoint Search Service must first crawl and index the content in order for it to be searchable. Typically, administrators will spread out indexing or crawl jobs every few hours. In larger SharePoint implementations, the organization might be able to afford to do the crawls only after-hours, like on nights and weekends (due to concerns of indexing jobs’ impact on farm performance).
There are some situations where you simply cannot wait for a crawl-job to complete. If you’ve ever been part of a task force, you know that reports have to be generated fairly quickly. You can’t afford to wait “3 hours from now” or “tomorrow” before you can generate the report that you want. Perhaps it is mission-critical that you be able to search SharePoint in real-time, right this moment. Your boss wants the report now, not tomorrow!
The Metadata Search Web Part is not dependent on search indexing. When you search using the Metadata Search Web Part, it will find items matching your query given the state of the list or library at the time you execute your search. You can even generate reports in real-time.
Searching Items with Custom Developed Code
For real-time search capabilities, the only alternative is developing custom code. You can do the following:
- Develop SharePoint CAML Queries
- Use SharePoint Designer to code Data Form Web Part that use filters
Because custom development requires time, the big drawback with this approach is cost. These custom solutions can be done in one day or they could take as long as a week. Another pitfall is that you might not be able to leverage your custom-development investment for other SharePoint sites, lists, and libraries. This means the custom development have to be done again and again, whenever the need for advanced search arises. Assume a SharePoint consultant rate of $150 per hour, you can imagine what kind of costs your organization will incur using this approach to employing advanced searches.
The Metadata Search Web Part can perform the advanced searches on any list or library. You can do all these without having to spend on custom development projects. Save time and money.
Learn more about the Metadata Search Web Part
As explained in this article, not all SharePoint searches are the same. Find out more how you can complement your SharePoint Search Server or FAST Search using the Metadata Search Web Part:
- Search a SharePoint list using Metadata Search Web Part
- Print and export search results with the Metadata Search Web Part
- Metadata Search Web Part feature list