Search Guys

Everything search, including product commentary and guidance, search strategies and general technical guidance

Search Guys

  • Building Custom Display Templates for OpenSearch Content

    One of the less-used features of SharePoint Search (2013 or SPO) is the ability to federate to non-SharePoint sources that support the OpenSearch 1.1 protocol. Moreover, there isn’t a lot of documentation out there about what to do with those results...
  • Quick Hits: What to know when building search-driven SharePoint apps in SharePoint Online

    Building search-driven apps in SharePoint Online can be a bit finicky. Actually, there’s a lot you should be aware of if your app is going to even leverage search at all but it’s all that more important if your data is getting updated a lot and you’re...
  • Building a Search-Driven SharePoint App (I)–Setting a Foundation

    At SharePoint Conference 2014 a few months ago, a good friend and colleague of mine did a presentation about how to build search-driven SharePoint apps. This topic remains interesting and relevant but I am starting to think we didn’t quite present it...
  • SharePoint Online crawl/indexing latency

    Compared to SharePoint 2013 on premise, working in SharePoint Online can be a little bit like groping in the dark. To re-index content you can either: Edit the item Go to the List Settings –> Advanced settings page and click on the Reindex...
  • How to find all managed properties of a document

    When working with SharePoint search it is often helpful to figure out all of the managed properties that are populated for a given set of documents. With SharePoint 2013 on premise, you can use the Content Enrichment Web Service (CEWS) and its debug mode...
  • Multi-select refiners and taxonomy managed properties

    In SharePoint 2013 you can use the “Multi-value Refinement Item” display template to allow users to choose multiple refinement values that will be searched for with OR logic.  In the following example, when I click “Apply” the results will be narrowed...
  • Scripted update of SP2013 Search Center navigation links

    Not wanting to have to hand edit my custom navigation links between lab, test, and production I wrote a little script to do it for me.   It takes as input an xml file that defines the title and url of each link (I haven’t added support for external...
  • Updating SP2013 refiners using PowerShell

    In SharePoint 2010, changes to the refiners were made using the the FilterCategoriesDefinition property of the refiners web part which held an XML blob. In SharePoint 2013 we instead do this using the SelectedRefinementControlsJson property. As the name...
  • Step by Step: Search Development in Microsoft SharePoint 2013

    I recently presented at TechEd in New Orleans and the presentation is up on Channel 9... Step by Step: Search Development in Microsoft SharePoint 2013
  • Creating Result Sources using PowerShell

    This post describes how to create a search result source using PowerShell. The GUI is easy enough but scripting is optimal as you promote configurations across environments. I was compelled to write this post because I’ve found a few posts out on the...
  • Super Simple BCS WCF Service Implementation

    This post will describe how to create a very simple BCS WCF implementation that can serve as a good starting point for creating a BCS implementation that is tuned for use as a search content source with SharePoint 2013. Download the SimpleService solution...
  • Query Troubleshooting - Post 1

    In this post, I plan to provide some top-level query debugging tips for SharePoint 2013 Search. I plan some follow up posts but I'm going to start small and build.   My search career has its roots in the old FAST Search and Transfer company so my...
  • How to throttle a BCS crawl

    Throttling a BCS crawl is done the same way as other SharePoint crawls, using crawler impact rules . The main trick is figure out what site name to use. The most precise way is to use a combination of the LobSystem name and the LobSystemInstance name...
  • SP2013: Getting at the Search Results web part Search Criteria via PowerShell

    Back in the SharePoint 2010 days to change the source of the Core Results Web Part you would simply set the Scope property on the web part object and be done with it.  In SharePoint 2013 we have query builders and result sources and things aren’t...
  • Mucking with search summaries in SP2013

    For a project I’m working on I needed to add some redaction to the hit highlighting summaries of the search results.   If I see anything that looks like a social security number, then replace the first five digits with asterisks. At first this...
  • SharePoint 2013 and Search Service PerformanceLevel

    Just a quick note… Set-SPEnterpriseSearchService still has the PerformanceLevel option in SP2013, but apart from the crawler component it doesn’t do anything. And in practice changing from Maximum (the default) to Partly Reduced won’t...
  • Content Processing Performance Scaling

    SharePoint 2013 has added the Content Processing Service to handle preparing documents to be indexed by the search engine.  One feature of the CPS is that it will adjust the number of processing flows depending on the number of physical cores present...
  • FS4SP Branding Project

    In this post I’ll describe a technique for branding a FAST Search for SharePoint Search Center.  There are three places where branding changes are often made:

    1. The master page.  The FAST Search Center is based on minimal.master and in this example I’ll just take a copy of that page and make a minor tweak to prove that it is my version that is being used.   Alternatively you can convert a v4 master page.
    2. The Search Main publishing layout page.  This defines the layout of the main search page with just the search box.
    3. The Search Results publishing layout page.  This defines the layout of the search results page.

    We’ll build this all using Visual Studio 2010 into a site collection feature that can be applied to any search center.  When the feature is activated, the search center will be applied and the publishing pages made active.  On deactivation, we’ll roll back our changes so the solution can be properly retracted.   Lastly for good measure, we’ll add in some logging to the ULS.

    This won’t show any actual snazzy branding (I’m no UI designer).  I’ll just be adding a custom css file and enough changes to the templates to prove that the customized versions are being used.

  • Getting the current user’s alias

    For a project I’m working on, I needed to know what the logged in user’s account alias was. Looking around I found examples that would make a ajax call out to the profile page and parse the results. This seemed like overkill for what I wanted...
  • Managing the SP Gatherer's temp files

    While the SharePoint Gatherer is processing files (Office documents, PDFs, etc), it will store them temporarily on local disk. By default this is in the Temp folder of the user running the OSearch14 service. It'll look something like: C:\Users\SHAREP...
  • Anti-Virus settings and Pipeline Extensibility

    If you’re using Pipeline Extensibility in Fast Search for SharePoint, you may know that files are written to a local directory for your program to work on before getting dumped back into the pipeline. This directory is: <Fast user’s home directory>...
  • Getting Refiner Counts Back in SharePoint 2013 Search

    If you’ve taken a look at search in 2013 at all, you might have noticed the beloved counts are now gone from refiner counts.  These were first introduced with Fast Search for SharePoint and represent what’s called deep refiners – that is- an accurate...
  • Quick Hits: Mapping a crawled property that contains TextChunks

    This is quite an edge case, but someone may run into it again. Inside the FAST pipeline, there are two string types. Plain old strings and TextChunks. TextChunks are used to be able to efficiently handle large strings that may need to be modified....
  • Quick Hits: Using a custom property with hit highlighting

    So you have a managed property with SummaryType set to Dynamic and you want to use that in the FAST Search Center but your results show up with <c0> tags instead of highlighted terms? In the Core Results XSLT, replace the following: <xsl:when...
  • Quick Hits: Dealing with managed properties in the search center XSLT

    Even though you've named your managed property using mixed capitalization, doesn't mean you can refer to it that way in the Search Core Results web part's XSLT. You will need to lowercase them. See HitHighlightedProperties for an example in the default...