<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="https://www.w3.org/2005/Atom" xmlns:sy="https://purl.org/rss/1.0/modules/syndication/" xmlns:dc="https://purl.org/dc/elements/1.1/" xmlns:content="https://purl.org/rss/1.0/modules/content/" xmlns:wfw="https://wellformedweb.org/CommentAPI/" xmlns:slash="https://purl.org/rss/1.0/modules/slash/"
  version="2.0">
  <channel>
    <title>Knut Brandrud's dev blog</title>
    <atom:link
      href="https://docs.microsoft.com/archive/blogs/knutbran/feed.xml"
      rel="self"
      type="application/rss+xml" />
    <link>https://docs.microsoft.com/archive/blogs/knutbran/feed.xml</link>
    <description>FAST Search Server for SharePoint</description>
    <lastBuildDate>Wed, 17 Apr 2019 03:23:06 GMT</lastBuildDate>
    <language>en-US</language>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <item>
      <title>How to view the status of the SharePoint 2013 search service</title>
      <link>https://docs.microsoft.com/archive/blogs/knutbran/how-to-view-the-status-of-the-sharepoint-2013-search-service</link>
      <pubDate>Fri, 30 Nov 2012 06:41:00 GMT</pubDate>
      <dc:creator><![CDATA[Knut Brandrud]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/knutbran/2012/11/30/how-to-view-the-status-of-the-sharepoint-2013-search-service/</guid>
      <description><![CDATA[As promised at the SharePoint Conference, here is a useful script that gives you the status of the...]]></description>
      <content:encoded><![CDATA[<p>As promised at the SharePoint Conference, here is a useful script that gives you the status of the search service in SharePoint Server 2013.</p>
<p>The script provides the following information:</p>
<ul>
<li>Key topology status data from Get-SPEnterpriseSearchStatus</li>
<li>Information about primary role for index and admin components</li>
<li>Job status for jobs run by the Analytics Processing Component</li>
<li>Detailed indexer information</li>
<ul>
<li>Re-partitioning status/progress</li>
<li>Master merge in progress</li>
<li>Index replica out of sync</li>
</ul>
<li>Crawl status (crawling/idle/paused)</li>
<li>Number of indexed documents</li>
<li>HA status for topology, indicating which components/partitions that does not have active redundant components</li>
<li>Host controller repository status (for search dictionaries)</li>
<li>Overall indication of system health for the search topology</li>
</ul>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Components.PostAttachments/00/10/37/35/05/Get-SPSearchTopologyState.ps1" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-components-postattachments/00-10-37-35-05/Get_2D00_SPSearchTopologyState.ps1">Get-SPSearchTopologyState.ps1</a></p>]]></content:encoded>
    </item>
    <item>
      <title>FAST Search for SharePoint extensibility updates in SP1</title>
      <link>https://docs.microsoft.com/archive/blogs/knutbran/fast-search-for-sharepoint-extensibility-updates-in-sp1</link>
      <pubDate>Tue, 12 Jul 2011 12:21:00 GMT</pubDate>
      <dc:creator><![CDATA[Knut Brandrud]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/knutbran/2011/07/12/fast-search-for-sharepoint-extensibility-updates-in-sp1/</guid>
      <description><![CDATA[SP1 is out, and there are some improvements and fixes relevant for the developer. This is a brief...]]></description>
      <content:encoded><![CDATA[<p>SP1 is out, and there are some improvements and fixes relevant for the developer. This is a brief summary, with links to additional information.</p>
<ol>
<li><strong>More flexible property extraction</strong>. FAST Search for SharePoint enables you to create your own property extractors. In this way you can extract names and concepts from the crawled content and add the normalized extracted values in new or existing managed properties. This is&nbsp;useful if you enable query refinement on the managed properties. <br />With SP1, there is no longer any restrictions on number of custom property extractors. Another improvement is that you can configure case insensitive property extractors. For most use cases this makes the configuration much simpler. <br />Note that you now use a separate configuration file for property extractors. If you already have created custom property extractors, you can easily migrate to the new configuration format if desired (but existing configuration will still be supported for backwards compatibility). <br />For more details, see updated documentation on MSDN: <a title="Creating a custom property extractor" href="https://msdn.microsoft.com/library/ff795797.aspx">Creating a custom property extractor</a>.</li>
<li><strong>Configurable title and date extraction for Word and PowerPoint documents</strong>. This is an alignment with the existing behavior in SharePoint Server search. After installing SP1, the title and date for these documents are retrieved from the content of the documents (if found), rather than the document metadata. Document metadata is often misleading, as users often writes new documents based on other documents or templates, and do not update the metadata. This is normally the desired behavior, unless your organization have policies and processes for keeping document metadata up to date. If you want the old behavior, you can configure this in optionalprocessing.xml. For more details, see updated documentation on MSDN: <a href="https://msdn.microsoft.com/library/ff795826.aspx">Configuring Optional Item Processing</a>.</li>
<li><strong>Correct handling of refiner names with uppercase letters</strong>. In the RTM version you must specify refiner names in lowercase, even if the associated managed property contains uppercase letters&nbsp;(such as "Write"). This fix applies to the refinement panel web part configuration, query web service and query OM. There is also a similar fix for managed property names in scope filters.</li>
<li><strong>Using Keyword Syntax queries with non-default full-text index</strong>. This means you specify the full-text index as a property filter in the query. This will now return correct results.</li>
</ol>
<p>&nbsp;</p>
<p>See also the full list of improvements and fixes: <a href="https://social.technet.microsoft.com/wiki/contents/articles/summary-of-fast-search-server-2010-for-sharepoint-sp1-improvements-and-fixes.aspx">Summary of FAST Search Server 2010 for SharePoint SP1 improvements and fixes</a>.</p>]]></content:encoded>
    </item>
    <item>
      <title>Date and time in FAST Search Server queries and results - part 2</title>
      <link>https://docs.microsoft.com/archive/blogs/knutbran/date-and-time-in-fast-search-server-queries-and-results-part-2</link>
      <pubDate>Fri, 10 Jun 2011 07:45:00 GMT</pubDate>
      <dc:creator><![CDATA[Knut Brandrud]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/knutbran/2011/06/10/date-and-time-in-fast-search-server-queries-and-results-part-2/</guid>
      <description><![CDATA[I discussed some locale aspects of date/time queries in a previous post, and was asked about how to...]]></description>
      <content:encoded><![CDATA[<p>I discussed some locale aspects of date/time queries in a <a title="Part one" href="https://blogs.msdn.com/b/knutbran/archive/2011/03/30/date-and-time-in-fast-search-server-queries-and-results.aspx">previous post</a>, and was asked about how to specify date/time property filters in queries.</p>
<h3>FAST Query Syntax (FQL)</h3>
<p>You must specify datetime property restrictions using an explicit range in UTC timezone and syntax.</p>
<table style="width: 600px; height: 202px;" dir="ltr" border="1" cellspacing="0" cellpadding="4">
<tbody>
<tr>
<td width="50%" height="5" valign="top">
<p><span style="font-size: x-small;">and(string("test", mode="or"), <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="font-size: x-small;">write:range(min, 2011-06-09))</span></p>
<p><span style="font-size: x-small;"><span style="font-size: x-small;"><span style="font-size: x-small;">and(string("test", mode="or"), <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; write:range(min, 2011-06-09, to="lt"))</span></span></span></p>
<p><span style="font-size: x-small;"><span style="font-size: x-small;"><span style="font-size: x-small;">&nbsp;</span></span><span style="font-size: x-small;">and(string("test", mode="or"), <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; write:range(min, 2011-06-09T00:00:00Z))</span></span></p>
</td>
<td width="50%" height="5" valign="top"><span style="font-size: x-small;">Items updated before, but not including, June 09, 2011, 00:00:00 UTC. If you leave out the time component, it defaults to 00:00:00.</span></td>
</tr>
<tr>
<td width="50%" height="5" valign="top"><span style="font-size: x-small;"><span style="font-size: x-small;">and(string("test", mode="or"), <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; write:range(min, 2011-06-09, to="le"))</span></span></td>
<td width="50%" height="5" valign="top"><span style="font-size: x-small;"><span style="font-size: x-small;">Items updated before, and including, June 09, 2011, 00:00:00 UTC.</span></span></td>
</tr>
<tr>
<td width="50%" height="5" valign="top">
<p><span style="font-size: x-small;"><span style="font-size: x-small;"><span style="font-size: x-small;">and(string("test", mode="or"), write:2011-06-09))</span></span></span></p>
<p><span style="font-size: x-small;"><span style="font-size: x-small;"><span style="font-size: x-small;"><span style="font-size: x-small;">and(string("test", mode="or"),&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;write:range(2011-06-09T00:00:00Z, <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2011-06-10T00:00:00Z))</span></span></span></span></p>
</td>
<td width="50%" height="5" valign="top">
<p><span style="font-size: x-small;">Items updated between (including)&nbsp;June 09, 2011, 00:00:00&nbsp;UTC and (not including) June 10, 2011, 00:00:00 UTC. </span></p>
<p><span style="font-size: x-small;">Note that the first syntax expression is a special&nbsp;case, where the expression means the full day of 2011-06-09. This is a shortcut for the full range. For all explicit range expressions&nbsp;the datetime is interpreted as an&nbsp;exact date/time (down to the second), even if omitting the time component.</span></p>
</td>
</tr>
<tr>
<td width="50%" height="5" valign="top"><span style="font-size: x-small;"><span style="font-size: x-small;"><span style="font-size: x-small;"><span style="font-size: x-small;">and(string("test", mode="or"), <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; write:2011-06-09T13:45:00Z))</span></span></span></span></td>
<td width="50%" height="5" valign="top"><span style="font-size: x-small;"><span style="font-size: x-small;">Items updated June 09, 2011, 13:45:00 UTC</span></span></td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<h3>Keyword Query Syntax</h3>
<p>For Keyword Syntax, the date expression must be specified according to your locale and timezone. This is an important difference from FQL!</p>
<p>You can specify&nbsp;explicit dates, and use property operators (:, = &lt;, &lt;=, etc.). The query examples below search for items containing the word 'test' (using a&nbsp;Norwegian locale):</p>
<table style="width: 600px; height: 202px;" dir="ltr" border="1" cellspacing="0" cellpadding="4">
<tbody>
<tr>
<td width="50%" height="5" valign="top"><span style="font-size: x-small;">test write:"2011-06-09"<br />test write="2011-06-09"<br />test write='2011-06-09'</span></td>
<td width="50%" height="5" valign="top"><span style="font-size: x-small;">Items updated June 09, 2011</span></td>
</tr>
<tr>
<td width="50%" height="5" valign="top"><span style="font-size: x-small;">test write="2011-06-09 11:45:00"</span></td>
<td width="50%" height="5" valign="top">
<p><span style="font-size: x-small;">Items updated June 09, 2011. </span></p>
<p><span style="font-size: x-small;">Specifying a time component is allowed, but the time component is discarded (you can only restrict the query by full days).</span></p>
</td>
</tr>
<tr>
<td width="50%" height="5" valign="top"><span style="font-size: x-small;">test write&gt;="2011-06-09"</span></td>
<td width="50%" height="5" valign="top"><span style="font-size: x-small;">Items updated June 09, 201,1 or later</span></td>
</tr>
<tr>
<td width="50%" height="5" valign="top"><span style="font-size: x-small;">test write&lt;"2011-06-09"</span></td>
<td width="50%" height="5" valign="top"><span style="font-size: x-small;"><span style="font-size: x-small;">Items updated before June 09, 2011</span></span></td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<p>You can also use these handy shortcuts:</p>
<table style="width: 600px; height: 202px;" dir="ltr" border="1" cellspacing="0" cellpadding="4">
<tbody>
<tr>
<td width="50%" height="5" valign="top">
<p>test write:"yesterday" <br />test write="yesterday"</p>
</td>
<td width="50%" height="5" valign="top">
<p>The time from the beginning of the day until the end of the day that precedes the current day.</p>
</td>
</tr>
<tr>
<td width="50%" height="5" valign="top">
<p>test write:"this week"</p>
</td>
<td width="50%" height="5" valign="top">
<p>The time from the beginning of the current week until the end of the current week. The week begins on monday.</p>
</td>
</tr>
<tr>
<td width="50%" height="5" valign="top">
<p>test write:"this month"</p>
</td>
<td width="50%" height="5" valign="top">
<p>The entire month that includes the current date.</p>
</td>
</tr>
<tr>
<td width="50%" height="5" valign="top">
<p>test write:"last month"</p>
</td>
<td width="50%" height="5" valign="top">
<p>The latest entire month that precedes the current month.</p>
</td>
</tr>
<tr>
<td width="50%" height="5" valign="top">
<p>test write:"this year"</p>
</td>
<td width="50%" height="5" valign="top">
<p>The entire year that includes the current date.</p>
</td>
</tr>
<tr>
<td width="50%" height="5" valign="top">
<p>test write:"last year"</p>
</td>
<td width="50%" height="5" valign="top">
<p>The latest entire year that precedes the current year.</p>
</td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<p>Additional information:</p>
<ul>
<li><a href="https://msdn.microsoft.com/en-us/library/ff394452.aspx">FQL datetime query syntax</a></li>
<li><a href="https://msdn.microsoft.com/en-us/library/ee558911.aspx">Keyword Query syntax reference</a></li>
</ul>
<p>&nbsp;</p>
<p>&nbsp;</p>]]></content:encoded>
    </item>
    <item>
      <title>Some hints on testing custom managed properties and queries</title>
      <link>https://docs.microsoft.com/archive/blogs/knutbran/some-hints-on-testing-custom-managed-properties-and-queries</link>
      <pubDate>Fri, 01 Apr 2011 01:52:00 GMT</pubDate>
      <dc:creator><![CDATA[Knut Brandrud]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/knutbran/2011/04/01/some-hints-on-testing-custom-managed-properties-and-queries/</guid>
      <description><![CDATA[When you customize your FAST Search Server deployment, there are certainly things that may go wrong....]]></description>
      <content:encoded><![CDATA[<p>When you customize your FAST Search Server deployment, there are certainly things that may go wrong. Sometimes it is convenient to reduce the number of potential error sources and test that the custom managed property mapping works properly. </p>
<p>It is possible to submit test documents directly to the FAST Search Server deployment (in case the issue is in the crawling). You can submit test items using 'docpush', and you can also set up the item processing pipeline so that you can submit test documents as XML. By using XML test documents, you can make your own crawled properties and map to managed properties the way you want. This is explained in the following TechNet Wiki article: <a href="https://social.technet.microsoft.com/wiki/contents/articles/how-to-create-a-fast-search-for-sharepoint-test-document-using-xmlmapper.aspx" title="How to Create a FAST Search for SharePoint Test Document Using XMLMapper">How to create a FAST Search for SharePoint test document using XMLMapper</a>. Note that 'docpush' is only supported for testing, you should not use it in a production environment.</p>
<p>There are some useful query test tools provided by the community that you can use to test your customizations. One good example is <a href="https://blogs.technet.com/b/speschka/archive/2010/08/15/free-developer-search-tool-for-sharepoint-2010-search-and-fast-search-for-sharepoint.aspx">https://blogs.technet.com/b/speschka/archive/2010/08/15/free-developer-search-tool-for-sharepoint-2010-search-and-fast-search-for-sharepoint.aspx</a></p>
<p>Another simple way to test queries, is to use a PowerShell script that access the Query OM. In this way, you can verify what's returned from the OM, and hence figure out if the problem is in the back-end or in the Web Part (or your custom query app). The attached PowerShell script&nbsp;runs a query via the KeywordQuery interface, and returns the selected custom managed property. </p>
<p>usage: propertytest.ps1 &lt;URL&gt; &lt;Hits&gt; &lt;Property&gt; &lt;Query&gt;</p>
<ul>
<li>&lt;URL&gt; - Specifies the URL for the query front-end web server of the SharePoint farm.</li>
<li>&lt;Hits&gt;&nbsp; - Number of hits to return.</li>
<li>&lt;Property&gt;&nbsp; - Specifies the name of a managed property. Prints the content of the property and associated query refiner data. Use lowercase only, even if the property name contains uppercase letters.</li>
<li>&lt;Query&gt; - The query string in FQL syntax. Use single quotes if it contains spaces or double quotes.</li>
</ul>
<p>If there are no refiners defined for the property, all OOB refiners are printed.</p>
<p>The script is also useful for other test purposes:</p>
<ul>
<li>If you have specified a query refiner for the property, it will also provide the refinement data. This is useful for testing custom property extractors and refiners.</li>
<li>The script will also return the rank value, in case you are testing relevancy features. </li>
<li>The script accepts queries according to the <a href="https://msdn.microsoft.com/en-us/library/ff394628.aspx#int_overview_query_options" title="FAST Query Language (FQL) syntax">FAST Query Language (FQL) syntax</a>. This enables you to easily test advanced FQL query features. If you are not familiar to FQL: For basic property filters and single term queries, the syntax issimilar to the standard SharePoint Keyword Syntax you type in&nbsp;any SharePoint&nbsp;query box. </li>
<li>It is easy to test other OM features via PowerShell.</li>
</ul>
<p>There is also another way to test queries. FAST Search Server provides an internal test query interface on the query processing server. This is explained in <a href="https://technet.microsoft.com/en-us/library/ff381272.aspx#BKMK_TestFASTSearchServer2010ForSharePoint" title="Test feeding and searching on FAST Search Server 2010 for SharePoint">Test feeding and searching on FAST Search Server 2010 for SharePoint</a>. This works fine if you index items with no access right restrictions,&nbsp;which is the case when you use 'docpush'. But for SharePoint data it will not work without some security tweaks, as this interface does not enable any authentication. Hence, it may be more convenient to test using the PowerShell script described in this blog.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Components.PostAttachments/00/10/14/86/38/propertytest.zip" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-components-postattachments/00-10-14-86-38/propertytest.zip">propertytest.zip</a></p>]]></content:encoded>
    </item>
    <item>
      <title>Date and time in FAST Search Server queries and results</title>
      <link>https://docs.microsoft.com/archive/blogs/knutbran/date-and-time-in-fast-search-server-queries-and-results</link>
      <pubDate>Wed, 30 Mar 2011 04:41:00 GMT</pubDate>
      <dc:creator><![CDATA[Knut Brandrud]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/knutbran/2011/03/30/date-and-time-in-fast-search-server-queries-and-results/</guid>
      <description><![CDATA[Handling date and time can be tricky on a query interface. If you create an end-user search...]]></description>
      <content:encoded><![CDATA[<p>Handling date and time can be tricky on a query interface. If you create an end-user search interface, you may want to adapt to the user's timezone. You may decide to determine the user's timezone based on the locale, which makes sense in certain cases, but not always. You could use IP address, etc., but this may not work well in many corporate environments. My office is in Oslo, but the gateway out of the corporate network happens to be in Ireland. Hence, many applications tend to believe that I'm in Ireland.</p>
<p>If you look at how the SharePoint search web parts works, you will see that they are timezone aware. In the following search result, there are two test documents with different date/time in the <strong>write</strong> managed property. The first date is just showing the content of the write managed property. In the index, all datetime properties are represented as UTC. The second date is added by the web part, and is adjusted to my locale. I'm located in Oslo, which is one hour ahead of Greenwich.</p>
<p><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/44/18/2804.datetime.jpg" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-01-44-18/2804.datetime.jpg" border="0" /></p>
<p>In FAST Search for SharePoint, you can choose between two different query languages. The <a href="https://msdn.microsoft.com/en-us/library/ff394628.aspx#int_overview_query_options" title="Keyword Syntax">Keyword Syntax</a> is the default query language in SharePoint. When using this language, you should be aware that all dates are adjusted according to the locale of the user. When using the Query&nbsp;OM, this is determined by the&nbsp;<a href="https://msdn.microsoft.com/en-us/library/microsoft.sharepoint.search.query.query.culture.aspx" title="Culture">culture</a>&nbsp;property. If you use the <a href="https://msdn.microsoft.com/en-us/library/ff394628.aspx#int_overview_query_options" title="FAST Query Language (FQL)">FAST Query Language (FQL)</a>, all dates should be specified in UTC syntax, and the search client should perform the necessary mapping. This is in most cases the preferred approach for search driven applications.</p>
<p>If you use query refinement, there are some other concerns. The default statistical binning in FAST Search Server will not give you datetime bins&nbsp;with reasonable date boundaries. What you typically want instead, is buckets such as 'today', 'yesterday', 'last week', 'last month', etc. You can do that as well, but then you need to create the (non-overlapping) bins per query in the client, based on the time when the user performs the query. Then you can combine these to provide possibly overlapping bins such as&nbsp; 'yesterday' and&nbsp;'last week'.&nbsp;This is described in more detail in <a href="https://msdn.microsoft.com/en-us/library/ff394639.aspx" title="Query Refinement">Query Refinement</a>. If you want to adapt the bins to the user's time zone, you must specify the bins on date and hour boundaries to reflect change of day in the user's timezone, but specified in UTC.</p>
<p>See also <a href="https://blogs.msdn.com/b/knutbran/archive/2011/06/10/date-and-time-in-fast-search-server-queries-and-results-part-2.aspx">part 2</a>, which discusses datetime query syntax.</p>]]></content:encoded>
    </item>
    <item>
      <title>Content API for FAST Search Server 2010 for SharePoint</title>
      <link>https://docs.microsoft.com/archive/blogs/knutbran/content-api-for-fast-search-server-2010-for-sharepoint</link>
      <pubDate>Fri, 18 Mar 2011 09:07:00 GMT</pubDate>
      <dc:creator><![CDATA[Knut Brandrud]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/knutbran/2011/03/18/content-api-for-fast-search-server-2010-for-sharepoint/</guid>
      <description><![CDATA[FAST Search for SharePoint provides multiple options for crawling and retrieving content for...]]></description>
      <content:encoded><![CDATA[<p>FAST Search for SharePoint provides multiple options for crawling and retrieving content for indexing:</p>
<ul>
<li>When you use the FAST Content SSA, the feeding/crawling will work in the same way as for SharePoint Server search. This is the recommended approach in most cases.</li>
<li>FAST Search for SharePoint also supports additional indexing connectors, to solve more advanced needs. For more information, see&nbsp;<a href="https://technet.microsoft.com/en-us/library/ff383278.aspx" title="Plan for crawling and federation">&nbsp;Plan for crawling and federation</a>&nbsp;(TechNet). There is also a <a href="https://technet.microsoft.com/en-us/library/ff383278.aspx#Identify" title="Connector selection table">table</a> that provides a comparison of the connectors.</li>
<li>If you have a custom content source, you can in most cases retrieve data for indexing using the <a href="https://msdn.microsoft.com/en-us/library/gg512148" title="BCS framework">BCS framework</a>.</li>
</ul>
<p>If you have more specialized needs, there is one more option. The <strong>FAST&nbsp;Content API</strong>&nbsp;enables you to push content from a client .NET application. This API is mainly provided to enable customers of previous FAST products to migrate their custom content connectors&nbsp;and use them with&nbsp;FAST Search for SharePoint. You may also use this API for other custom applications, but note that there are certain limitations on the support for the API -&nbsp;see the <a href=" https://www.microsoft.com/downloads/en/details.aspx?FamilyID=0686333b-d47a-43e9-aa28-33f4a4b2b7ac" title="download page">download page</a> for details.</p>
<p style="text-align: left;">The API&nbsp;provides an asynchronous interface for pushing items to the FAST Search farm from a remote client application. The API communicates with the FAST Search Content Distributor, using WCF. The API is based on .Net Framework 3.5.</p>
<p style="text-align: left;">If you are familiar with the FAST ESP .NET Content API, you will find it easy to use, but there are some differences:</p>
<ul>
<li>
<div style="text-align: left;">The routing attributes are not supported</div>
</li>
<li>
<div style="text-align: left;">You can add multiple attachment documents for each item</div>
</li>
<li>
<div style="text-align: left;">You can add a security descriptor for each item, using a&nbsp; Security Descriptor Definition Language string that describes the security/allowed access for an item</div>
</li>
<li>
<div style="text-align: left;">The API works with crawled properties, and in SharePoint the crawled properties must have a name and a GUID. When you add a crawled property to an item, you can set the crawled property GUID for the IDocumentFeeder instance, or for the property instances</div>
</li>
</ul>
<p style="text-align: left;">By using the Content API, you create your own custom crawled properties. In the FAST Search Server farm, you should create a new crawled property category for the new crawled properties: </p>
<p style="text-align: left;"><span style="FONT-SIZE: 12px">&nbsp;&nbsp;&nbsp; $guid = [guid]::NewGuid()</span> </p>
<p style="MARGIN: 0in; FONT-FAMILY: calibri; FONT-SIZE: 11pt"><span style="FONT-FAMILY: segoe ui; FONT-SIZE: 12px">&nbsp;&nbsp;&nbsp; $cat = New-FASTSearchMetadataCategory -Name xmlprops -Propset $guid</span></p>
<p style="MARGIN: 0in; FONT-FAMILY: calibri; FONT-SIZE: 11pt"><span style="FONT-FAMILY: segoe ui; FONT-SIZE: 12px">&nbsp;&nbsp;&nbsp; Set-FASTSearchMetadataCategory -Category $cat</span></p>
<p style="MARGIN: 0in; FONT-FAMILY: calibri; FONT-SIZE: 11pt"><span style="FONT-FAMILY: segoe ui; FONT-SIZE: 12px">&nbsp;&nbsp;&nbsp; $guid<br /></span></p>
<p style="text-align: left;"><span style="FONT-FAMILY: segoe ui; FONT-SIZE: 12px">Note the GUID value. This is a unique value that you need to use in the API client.</span></p>
<p style="text-align: left;"><span style="FONT-FAMILY: segoe ui; FONT-SIZE: 12px">In most cases it is convenient to use one crawled property category for all crawled properties used in the API, and then map the crawled properties to managed properties within the index schema. In that case, you only need to specify the GUID in IDocumentFeeder (PropertySet). You can also specify crawled property category for individual properties. When you create a 'Document', and wants to specify a unique GUID for the crawled properties, you can do that by adding elements of type Property (e.g. StringProperty), and add the GUID you have created above using PropertySet.&nbsp;</span></p>
<p style="text-align: left;"><span style="FONT-FAMILY: segoe ui; FONT-SIZE: 12px">You must also create a unique <a href="https://technet.microsoft.com/en-us/library/ff191248.aspx" title="content collection">content collection</a> for the Content API client. Do not use the default 'sp' collection.</span></p>
<p style="text-align: left;"><span style="FONT-FAMILY: segoe ui; FONT-SIZE: 12px">For detailed documentation of the API interfaces, refer to the .chm help file that is part of the download.</span></p>
<p style="text-align: left;"><span style="FONT-FAMILY: segoe ui; FONT-SIZE: 12px"><strong>Download: </strong><a href=" https://www.microsoft.com/downloads/en/details.aspx?FamilyID=0686333b-d47a-43e9-aa28-33f4a4b2b7ac" title="Content API download page"><strong>Content API for Microsoft FAST Search Server 2010 for Sharepoint</strong></a><strong> </strong></span></p>
<ol>
<p style="MARGIN: 0in; FONT-FAMILY: calibri; FONT-SIZE: 11pt"><span style="FONT-FAMILY: segoe ui; FONT-SIZE: 12px"></span>&nbsp;</p>
</ol>]]></content:encoded>
    </item>
    <item>
      <title>Customize your search result sorting</title>
      <link>https://docs.microsoft.com/archive/blogs/knutbran/customize-your-search-result-sorting</link>
      <pubDate>Tue, 15 Mar 2011 13:08:00 GMT</pubDate>
      <dc:creator><![CDATA[Knut Brandrud]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/knutbran/2011/03/15/customize-your-search-result-sorting/</guid>
      <description><![CDATA[One of the nice features&nbsp;if you&nbsp;create your own&nbsp;query client with&nbsp;FAST Search...]]></description>
      <content:encoded><![CDATA[<p>One of the nice features&nbsp;if you&nbsp;create your own&nbsp;query client with&nbsp;FAST Search for SharePoint is all the options to customize search result sorting. The most flexible option is the 'sort by formula' feature. As you may guess, this feature enables you to define your own formula defining how to sort your query results. Why would you want to do that? The product already gives you the ability to sort by relevance, which is computed based on a number of factors related to how well the query match your content. You can also sort by the value of managed properties, such as dates, names, etc. However, in some cases you may&nbsp;have a more specific sorting requirement that is not covered by numeric or text sorting.</p>
<p>The probably most relevant use case for this feature is sorting by geographical distance. Given that you can supply your own position with latitude/longitude for the query, and the indexed items also includes this information, you can create a formula that can sort by distance from your own position to the position given in the indexed item.</p>
<p>Another possible use case is to sort by the value of a managed property, but map the values to given buckets before sorting. Then you can use this in a multi-level sorting specification, and apply some other sorting mechanism for values within the same bucket.</p>
<p>You can find more detailed syntax description, examples, and&nbsp;information on how to use the feature from the query web service in this article:</p>
<ul>
<li><a href="https://msdn.microsoft.com/library/ff394654.aspx" title="TechNet article on sort by formula">MSDN article on sort by formula</a></li>
</ul>]]></content:encoded>
    </item>
  </channel>
</rss>