Archive for February 27, 2014

Refining Unstructured Search Results in SharePoint 2013

SharePoint search is awesome. It gives you the ability to search content inside of SharePoint, as well as outside of it. Plus, it gives you the ability to search for other employees in your organization. And quite easily!

Though, what it also gives you is a window into your organization’s disorganization. How many times have you taken a look into Active Directory only to find that users have job titles like “Mgr”, “Manager”, “Senior Manager”, etc.? One person’s naming convention is rarely ever exactly like someone else’s.

Now what happens if users actually want to refine these results. Say they want to pull back a list of all managers. They’d need to create a query similar to this:

Not very intuitive, is it?

Another option is to go back to your IT department and ask them to standardize this naming convention. Which wouldn’t be that difficult of a task for them, except they are already over worked and don’t really have time for another non-mission critical task.

So what does that leave? How about trying out a custom entity extractor? What is that you say? A custom entity extractor is a keyword mapping for a managed property, allowing you to customize the search refiner. In laymen’s terms, it’s a way for us to map our unstructured data (Mgr, Manager, Senior Manager) into a single term (Manager). Which allows you to add it as a search refiner so you can easily filter on just the “Managers”.

Our Example

For our tutorial, I’m going to use baseball as an example. Our people search returns the following players.

Each player has a unique job title, “Designated Hitter”, “Right Field”, and “Second Base”. We want to search for these players by “Infield” or “Outfield”. This would be akin to having “Mgr” / “Manager” / “Senior Manager” as job titles and wanting to filter by just “Manager” or “Partner”.

Create the Custom Extraction Dictionary

First we need to create our Custom Extraction Dictionary. This a comma separated (CSV) file which will define our mappings. I’m going to name this PositionsDictionary.csv and have all the infield positions map to “Infield” and all the outfield positions map to “Outfield”.

 

Import the Dictionary

Next we will need import the dictionary into our search application. Here is where we need to decided what type of extract it is. Should “First Base” match exactly to our values in AD, or should it just match part of it, and is it case sensitive? You can view the different types over on TechNet. For this example we will be using the Word Extraction type which is case-insensitive and matches the full word exactly. Run the following PowerShell cmdlet as an administrator on your SharePoint box:

$searchApp = Get-SPEnterpriseSearchServiceApplication
Import-SPEnterpriseSearchCustomExtractionDictionary -SearchApplication $searchApp
-FileName \\UNC-PATH\PositionsDictionary.csv
-DictionaryName Microsoft.UserDictionaries.EntityExtraction.Custom.Word.1

 

The FileName argument needs to be a UNC path. The DictionaryName argument needs to be exactly whats defined on TechNet (if you follow the link above). And if done correctly you will see a “Dictionary imported successfully”.

 

Map the Property

We now have to link our dictionary / mappings to the Job Title managed property. To do this, head over to the Search Service Application in Central Administration. Click on “Search Schema” link in the left navigation, which is found under “Queries and Results”, and search for the managed property “JobTitle”, and click on it to edit it. Then scroll down to the “Custom Entity Extraction” section.

This is where we need to link our managed property to the dictionary. Since we used the first Word Extraction dictionary, we need to check it off. If you used a different one, you will need to choose that one instead. Click “Ok”, and run a full crawl.

Add the refiner

Since we cannot change the default People Search page, I’ve created an exact replica of the People Search page in my Search Center, and changed the “People” link to that new page. The only difference, is that in my refinement webpart, I used “WordCustomRefiner1” instead of “JobTitle”, which I also gave it Display Name of “Job Title” just like the actual JobTitle managed property.

Click “Ok” and Save / Check In / Publish the People Search page.

 

Results

Now to test it out. If we do our search again, you can see that we just have two different job titles, “Infield” and “Outfield”. Which we can refine our results based on that.

And just like that, we’ve managed to filter our employees exactly as we desired without updating Active Directory or bothering IT.

The “Newness” of Practicing Fundamentals

My clients often ask me, “What’s new Jim? Show me something new.”  They are looking for a guide through the Cloud or a new way to manage a process.  Perhaps a “new” competitive advantage you could give your company is mastering the “old” fundamentals in every process, with every employee.

In other words: Get great at the basics first.  Basics can be fun, basics can be “new” to some (or many) of your processes, basics can be your competitive differentiator!

Here’s a great example…I don’t play basketball, but I respect the value of a good coach.  John Wooden, one of the most winningest coaches in college basketball (winning 10 national championships), is a stalwart example of the power of fundamentals.  Coach Wooden was famous for taking the best players in the country and making them practice 500 layups or 500 free throws over and over – the basic fundamentals.  Why?  So they would, unequivocally, make those shots in the clutch moments of the game.

Is winning 10 national championships a differentiator? You bet!  Is winning 10 national championships dependent on being the best at the fundamentals?  Of course! Ergo, being the best at the fundamentals is a competitive differentiator!

Working Capital Turns (WCT)

So, let’s get back to differentiating your business by practicing fundamentals relative to Working Capital. Working Capital Turns (“WCT”) is a fundamental metric…one many companies do a poor job of managing.  It takes understanding the levers that move WCT and employing a systematic, consistent approach to managing those levers.  Systematic consistency are fundamentals and it takes a focused, disciplined approach to ensure they are embedded in the processes and culture of your organization.

Let’s do some simple math to illustrate the point.  Let’s say you are now an owner of a manufacturing company (congratulations!) with working capital turns of 4.  This means that given the efficiency, or lack thereof, of the current state of your processes, you convert your Receivables, Payables and Inventory into Cash four times per year. So, every 90 days or so, your net working capital is deposited into your bank account to be used for strategic acquisitions, re-investment or whopping bonuses.

This also means that a full quarter of your sales are hung up on your balance sheet…It makes for a stronger looking balance sheet, but that cash is not working for you like it should!

What if you practiced some fundamentals…and focused on increasing those turns?

Extending the illustration, if your manufacturing company generated $200M of sales, a one-turn increase of working capital would free up $10M in cold, hard Cash from your balance sheet.  What could you do with an extra $10M right now?  Use it to buy out a competitor?  Merge with a supplier – become more vertically integrated? How about invest in new technology? How would you use extra capital to deliver more certainty of success to your business?

Practicing the fundamentals is often passed over in favor of something “shiny and new” – but when it comes down to getting results – it is often consistently practicing fundamentals that makes all the difference.

Let me leave you with a timely example of the importance of consistency and practice: Steven Holcomb is considered the best bobsledder in the world.  In the 2014 Winter Olympics, why did his team only take the Bronze, while the Russian team took Gold?  Answer: the Russian team practiced more.  Being from the area, the Russian team was able to practice the run many, many more times than any other team, so they knew the nuances of the track in all kinds of weather.  That’s what gave them the advantage.  Take a hard look at your processes…is your company set up for Gold?

Jim Harper is a director in BlumShapiro’s consulting group, specializing in middle-market/large client offerings including CFO solutions, shared services, process reengineering and business process outsourcing (including control and internal audit) for the firm’s business solutions and technology consulting practices.  He has diverse experience in finance, finance transformation, accounting, reporting, controls and operational management.