SharePoint 2010 People Search – Missing Content Mystery Solved

A quick post on an issue I hit today with the SharePoint 2010 beta – updates to user profile data were not showing up when doing a people search. There were missing users, missing info, etc. After a few hours or so of digging the root cause was found. And it ended up being an issue in terms of how I was thinking about search (stuck in my SharePoint 2007 ways), not a problem with the product itself. Let me back-up though.

 

Scenario

I am working with a customer on a social computing focused proof of concept with SharePoint 2010 (beta of course, which makes it more interesting). The customer decided to leverage the pre-built SharePoint 2010 Hyper-V images as a starting point.The benefit here, is that my customer has a working SharePoint 2010 environment with demo users provisioned, Office 2010 installed, OCS, Exchange, all ready to go. The environment was made available to us at 2 PM on Monday and we had a good customer-focused demo scenario put together after about a day’s worth of work together.

This customer demo will use some of the out-of-the-box users that are included in the pre-built image. This is a huge time saver in terms of setting up users, adding data, and establishing a prototype org structure. And people search works right out of the box. My customer liked it but they wanted to update a few of the user’s profile data to better fit their organization. For example, updated job titles, locations, interests, etc. We also went into Active Directory and created a few AD users for the four of us that were working on this project together.

Next step, import the users in from AD into the user profile store. As noted in dozens of blogs there are ‘challenges’ with this in the beta if you don’t get it quite right, but we were in good shape with the demo image. And I’ve built a farm before with this working. So far so good.

Next step, kick off a crawl. I chose a full crawl, but an incremental should be fine. And I used the pre-defined content source, “Local SharePoint sites”. The crawl completed as expected – with mostly successful crawls. So now I’d expect, having done this hundreds of times with SharePoint 2007, that I could go to the people search tab and search for one of the new users or updated user info. Unfortunately, results were not returned as expected. Time to troubleshoot.

User Profiles

The first step to troubleshoot is fairly easy. Just go to the User Profile Service Application and verify user data was showing up there. Also verify that new users created in AD were showing here as well. Done.

 

Crawling

Now I needed to verify the crawls. This is a little more time consuming because I need to kick off crawls after updates and wait for these crawls to complete. First I went to the content source and verified that there was an entry for sps3. In my case I decided to just create a new content source with sps3://intranet.contoso.com as the single start address. This helped make my crawls faster (less to crawl) – a good troubleshooting technique. I kicked off the crawl and verified results. New users and updated users were showing up in the crawl log as expected (as a side note, the demo image has 3 errors – due to the fact that Juliani is setup as his own manager. To fix, just go to AD or the user profile and set his manager as someone else). So content is crawled OK.

Scopes

The next step I took was to mess with the scopes. I spent way too much time here, since the numbers weren’t matching my expectations. I thought this could be the cause of missing data in search, and I wasn’t thinking there was any other option. Keep in mind that people search was working for me – just not updating with the latest updates to data in user profiles.

 

Now What?

Hmmm, was there a problem with how the index was being propagated? No, that couldn’t be. After some head scratching, and some online searching, I found my answer. I needed to go in and confirm that the search service application (the one I’d been using for crawls/scopes/etc.) was actually associated with the web app I was using for my search center. It seems so simple, but it never occurred to me, since people search was working for me all along.

The downloadable SharePoint 2010 beta image includes FAST search, and the FAST Query SSA was associated and checked as default. And the (SharePoint) Search Service Application was unchecked. My internal image was configured the same way. Bingo!

So the fix is simple – just update the association for your web application. To do this go to Central Admin, click on Application Management, and in the Service Application section click on ‘Configure service application associations’. This is one of those pages in the new Central Admin that you don’t think about very often but it is so important.

image

Now you will get a list of associations. In general, this is grouped into a single “default” application proxy group, but this could obviously be a lot more complex depending on your farm. The current view (upper right on screen) is showing associations by Web Application. Prior to my fix this screen showed me that Fast Query SSA was associated (under the Application Proxies column) but the Search Service Application was not.

image

You could click on a web app and create a custom application proxy group. But for my fix, I wanted to update the Application Proxies for all web apps so I clicked on ‘default’.  This brings up a dialog where I can check/uncheck service applications. I unchecked FAST Query SSA (FAST is amazing, but my customer wanted to see what SharePoint search could do as a first step, since they are licensed for SharePoint Standard). And I checked Search Service Application and set this as the default.

image

As soon as I did this I went over to my people search, ran a few test queries to validate user updates/additions were now showing up. Check, check, check! All is good!