Post by: Martin Dreyer
Posted on: 7/31/2013 9:18:00 PM
What's an Entity Extraction Dictionary?
There are plenty of good posts on this, but here's a super-brief explanation.
SharePoint entity extraction dictionaries are simple text files defining terms that you want the search crawler to automatically look for and build into the search index. They can then be used in search refiners.
What about roll-up?
If my documents contain the country name Canada or the province name British Columbia, I’d also like them to show up when I refine on North America. That can be achieved by representing the hierarchy within the dictionary, in addition to the original entries.
Documents containing any of the terms shown on the left will then be rolled up into the term North America. The refiner experience when clicking North America is shown below. It is probably wise to avoid doing this on larger dictionaries, however, since it can bloat them to several times their original size. Post by: Ryan McCarney
Posted on: 7/3/2013 2:34:00 AM
While working on a client solution I ran into the need to configure the search box drop down for a few site collections. They needed a custom Result Source added, as well as have the Conversations Result Source removed.
Back in SharePoint 2010, this was a rather easy exercise, you just had to connect your site collection to your default search center and update the site collection search settings to display the scopes drop down, and your entire site collection would take on those settings.
With SharePoint 2013 I ran into some issues with this. You can connect your site collection to a search center as before, but then you still had to configure the search navigation manually on a per site basis (I'm not going to go into too much detail on this as there's a lot of articles about this now). After playing around with the search settings for a while, it started to look like there's a bug in the search settings inheritance as sub-sites were not inheriting the search navigation from the root site of the site collection. As well, once you customized the search navigation on the site, you lost the contextual "Search this site" functionality in the search box. So after a bit more research on the Internet, and a half dozen blogs later I had confirmation enough that there's some issues with configuring search navigation for a whole site collection.
So this presented me with two issues
I needed an easy way to manage the search navigation on a site collection basis
As well, I still needed to maintain the "Search this site" contextual search
Some of the suggestions out there were to create a PowerShell script to configure the search navigation settings, which are valid, but that solution wouldn't allow for easy configuration for the SharePoint administrators moving forward. So to take it a bit further I decided to create a timer job that would synchronize the search navigation from a search center to specified site collections. This would simplify the management of the search navigation, without having to execute scripts every time you wanted to make a change.
So to allow for some more flexibility I've added in support for the following configuration settings
Web Application (You can configure the timer job separately for each web application if you wish)
Search Center URL (The URL to the Search Center you wish to use for your search settings)
Site Collections to Update (You can specify a URL per line for all the site collections that you wish to inherit the search center's seach navigation) - Or check the Sychronize Search Navigation to all Site Collections check box
Sites to exclude (If you have any sites that you don't want configured by the timer job you can specify one URL per line here)
Include This Site Contextual Search (This allows you to still keep a contextual "Search this site" option. By default this will be placed last)
Make This Site Contextual Search First Option in Search Drop Down (This will make sure the "Search this site" is the first item in the search drop down, and therefore the default selected search)
So, how to install the timer job
You can download the WSP from the CodePlex link at the bottom, or you can grab the source code if you wish to customize further and package your own WSP
Add and install the WSP to your SharePoint 2013 farm
In Central Administration enable the "Softlanding SharePoint 2013 Search Navigation Sync Timer Job" feature for the Web Application(s) you wish to synchronize Search Navigation Settings on
To configure the Timer Job
Navigate to the "Configure Search Navigation Synchronization Timer Job" page (Go to Central Admin -> General Application Settings -> Configure Search Navigation Synchronization Timer Job
Select the "Web Application" you wish to configure the timer job for (Note The "Softlanding SharePoint 2013 Search Navigation Sync Timer Job" feature needs to be activated for this web application)
Specify the "Search Center URL" you wish to inherit the Search Navigation settings from
Specify the "Site Collections to Update" URLs (one per line) you wish to have their search navigation settings configured by the timer job, or else check the
Specify the "Sites to exclude" URLs (one per line) that you wish to NOT have their search navigation settings configured by the timer job
Configure "Include This Site Contextual Search" and "Make This Site Contextual Search First Option in Search Drop Down" options
Click the Apply button
Note The default schedule for the Softlanding - Search Navigation Synchronization Timer Job is hourly, to modify this schedule
Go to Central Admin -> Monitoring -> Review job definitions
Select "Softlanding - Search Navigation Synchronization Timer Job" timer job in the Job Definitions list
Make your scheduling changes and click the OK button
Now the timer job will run hourly (or on whatever schedule that you configured it for) and will update all the sites in each site collection as you have configured.
Some other implementation notes that you might want to be aware of
The timer job will always run on the specified schedule but it won't update the search navigation settings on all the sites unless
The search navigation settings have been updated on the search center since the last time the timer job ran,
or any of the timer job settings have been updated since the last time the timer job ran (excluding schedule settings)
The site's search center is also set to the timer job's Search Center URL when it runs as well.
Hopefully as SharePoint 2013 matures and via a future CU, the search configuration will start to work more intuitively and that inheritance of search settings will work properly, for now this solution will work for most scenarios I have ran into so far.
Feel free to download the source code and let me know what you think or if you feel like adding additional functionality that'd be great. For the moment I won't be adding additional functionality to the timer job but I can see in the future the possible need for more granular control on how search settings are synchronized to other site collections.
To download this solution from CodePlex go here https//slsearchnavsync.codeplex.com/
Updates (Oct 4, 2013)
Added new coonfiguration option for synchronizing to all site collections
Removed implementation note
Replaced screen shot of timer job configuration page