This is post 3 of 3 -- Unifying Business Data and Documents. The core of this presentation was the demo so the slides may not be too interesting... I'll try and follow-up on more of the details of this session in a future post.
Original Abstract:
"SharePoint’s Business Data Catalog feature provides the ability to integrate your business data into the SharePoint platform. By leveraging the SharePoint search framework, we can provide another entry point into your user’s business applications. This session focuses on how to incorporate the out-of-the-box capabilities with customizations that use the search API."
This is post 2 of 3 -- Leveraging Your Investment in the Platform (MOSS Search).
Original Abstract
"SharePoint 2007 provides a powerful search engine that is often underutilized. This session provides a deep dive into the out-of-the-box capabilities the platform provides. It will cover both search administration and user experience practices that will help you unlock the full potential of the platform."
I've been lazy the last 3 months, so I'm finally posting my slide decks. This is post 1 of 3 -- Improving Relevance and the Search Experience Using the API.
Original Abstract:
"The out-of-the-box search experience can be improved by tapping into the API available for search. This session takes an in-depth look at the search API and introduces patterns that can be applied to strengthen both the search user experience and search relevance."
Alright... so I've finally completed the official release of my CodePlex project (SPAdvancedSearch). It will revolutionize searching within SharePoint.. well, not exactly. But it is pretty sweet IMHO. The underlying architecture is interesting and is somewhat described in the documentation on the site. I've had the vision for quite some time, but I haven't had the opportunity to implement it. The general pattern that I took is pretty basic... Taking more complex web part configuration settings (above and beyond the traditional data types supported OOTB) and using custom XML serialization to persist them in the web part. I've include a synopsis of the SPAdvancedSearch project below.

The goal of the SPAdvancedSearch project is to improve the
ability for end-users to perform advanced property-based searches in SharePoint
without requiring knowledge of the property-based syntax (i.e.
DocumentCategory:Proposal, etc.). For
quite some time I wished that the user profile search in SharePoint was
available for finding content other than user profiles. This project seeks to bridge that gap.
Since the out-of-the-box search input provides many
configuration options, I decided to derive from Microsoft’s
Microsoft.SharePoint.Portal.WebControls.SearchBoxEx web part to inherit the
“goodness” it provides. The derived web
part “intercepts” the advanced search link by providing an expand / collapse
panel with flexible managed property advanced search options. In addition to providing a basic text box
input UI, the advanced search web part allows for configuring “Choice” values
similar to SharePoint’s Choice field type.
Future enhancements and considerations are included later in this
document. One interesting note to point
out is that this control does not alter the way that the OOTB SharePoint search
control performs queries. Instead, it
makes use of the same QueryString driven approach (i.e. results.aspx?k=Some Key
Words Here).
Check it out: http://www.codeplex.com/SPAdvancedSearch.
Have you ever wondered why the OOTB MOSS search box didn't include the same functionality that the people search provides? If you haven't noticed, the People Search box provides an in-page advanced search experience to easily search by managed properties (i.e. Department, Location, etc.). I've recreated this functionality for the using a CEWP and JavaScript; however, that's not necessarily a scalable solution. As part of my preparation for the upcoming SharePoint Connections conference in Las Vegas, I've started a solution for this on CodePlex. It's functional, but I have more work to do...

http://www.codeplex.com/SPAdvancedSearch
The code and general information is available; however, I haven't created an officially released WSP. Here are some highlights...
This preview release includes:
*Ability to define SharePoint Managed Properties in the advanced search pane using xml
Version 1.0 will be released in mid-to-late October and will include:
*Custom toolpane for defining managed properties (no more xml).
*Automatic display of the advanced search panel via configuration on the toolpane
*Automatic display of the advanced search panel on results pages when a query has been executed
*Removal of managed properties used in the search from the "keyword" input box to improve user experience
Version 1.5 is planned to include these additional features:
*Ability to define a choice list as a value type in the advanced search panel
*Ability to define a lookup list as a value type in the advanced search panel (limited to SharePoint lists)
The advanced search web part derives from the OOTB MOSS Search Box web part so all of the base functionality is available. Once placed on a search entry and / or results page, the web part can be configured to display managed properties of your choice.
http://www.codeplex.com/SPAdvancedSearch
While preparing for my upcoming SharePoint Connections presentations in Las Vegas, I decided to release some SharePoint Search solutions to CodePlex. My first release is an extension to the MOSS Shared Service Provider that provides administrators with the ability to configure managed property weights and length normalization, carefully modify standard MOSS ranking parameters to tune relevance, and execute the ranking update process. I know... it's not that exciting. There are other options for configuring these relevance settings in MOSS (EXEs and custom STSADM extensions); however, this is the first option that I have seen that is fully integrated into the SSP. Check it out and let me know what you think...
http://www.codeplex.com/SPSearchAdminToolkit

Additional information and screen shots are available on CodePlex...
So what's next on my plate for release? Since someone already created a search as you type feature on CodePlex, my next project will be a "fancy" advanced search extension that provides an advanced search UI similar to the MOSS people search advanced search input.
Have you ever wanted to crawl a specific document library in a SharePoint site? Have you tried and instead you successfully crawled the entire portal or site collection? I've been told that this can be accomplished by crawling the library by its UNC path; however, that still doesn't work.
A customer I work with had a technical requirement to have multiple portal implementations across the US. Each portal implementation had a specific document library that contained documents and metadata. The main portal in this scenario was responsible for crawling the individual document libraries in each portal implementation; however, we always ran into issues with the crawler "jumping outside" of the intended crawl scope. Sure, we could add include/exclude paths until our eyes bled, but that process never really seems to work as one would expect. We opened a ticket with Microsoft and we're presented with an approach that actually works.
1. Identify the underlying document library's "site" or "area" and use the crawl logs to find the URL that SharePoint used to crawl the content. This is a painful process; however, it can be made easier by searching the gatherer logs that are stored in the portal's underlying _Serv database. The URL you should look for will have the form: sts2://<servername>/webid=000/listid={listid}. To this date I have no clue where the web id comes from since web ids are typically GUIDs. The list id on the other hand is a GUID that can be easy to ascertain by looking at querystrings on the portal site. Regardless, it is much easier to find this URL by querying the gather log tables in the _Serv database.
2. Once the exact URL is identified, you can add an Exchange Public Folder content source that points to aforementioned URL. Configure the content source to crawl as desired and start the crawl. Assuming the crawl account you are using has access to the SharePoint site, you're in business.
By following these two steps, you can crawl individual document libraries and/or lists in SharePoint. This is very powerful for content aggregation across an enterprise that has disparate stores for documents. Assuming the documents have like metadata, an advanced search scenario makes this even more interesting. Since each underlying URL that was identified in 1 and 2 above is a content source, you can create a scope that includes each content source. With some custom programming, a SharePoint developer can create an interface for business users to choose which content source or sources they want to search as well as providing search inputs to search for documents by metadata in an advanced search.
An example of this scenario is as follows: Joe User wants to find all documents in Portal A's library, Portal C's library, but not Portal B's library with department = HR and document type = specification and a free text search for documents containing the word SharePoint.
IMO, this is a powerful customization.
Well... after several months or maybe even several years I am posting to my blog. I've got a couple ideas on what I can blog about during the next couple of weeks.
- Demystifying Ghosting and Unghosting -- IMO this will be a hot topic with the upcoming release of MOS 2007. Raymond Mitchell and I made some interesting discoveries while working at a customer site this week. I'm sure there will be a number of posts that the IW Team will have in this area related to migration from SharePoint v2 (WSS and SPS) to MOS 2007.
- Demystifying Users Security, Profiles, Members, etc., etc. in SPS v2 -- SharePoint v2 can be quite confusing when looking at all the place a "User" record exists. This isn't very exciting, but it needs some clarification. Plus, I like to use the term "Demystifying" in the topic...
- Creating a Framework for Accessing SharePoint List Data via Web Services -- Who knows if it is even necessary, but I think it's cool. Plus, it's using a framework similar to one I've used on other non-SharePoint projects. It's basically using the Data Mapper approach to map data coming from a SharePoint web service to a Domain Layer.
- General Consulting Topics -- I've been in the consulting world for over 7 years now. I've accumulated some thoughts / opinions on what I believe make a good -- no *great --consultant.
*Side Note: While driving home, I realized saying great in the item above may sound a little arrogant. I'm definitely not saying I'm a great consultant...
There it is. My first post. Jake - I wonder when you'll see this. You'll have to give me some feedback. Am I doing the link thing properly?