<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://bloggingabout.net/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Search results matching tag 'Fast'</title><link>http://bloggingabout.net/search/SearchResults.aspx?a=1&amp;o=DateDescending&amp;tag=Fast&amp;orTags=0</link><description>Search results matching tag 'Fast'</description><dc:language>en-US</dc:language><generator>CommunityServer 2008.5 SP2 (Build: 40407.4157)</generator><item><title>Fast Search for SharePoint: crawler process blocked due to memory capacity limit</title><link>http://bloggingabout.net/blogs/bas/archive/2012/08/22/fast-search-for-sharepoint-crawler-process-blocked-due-to-memory-capacity-limit.aspx</link><pubDate>Wed, 22 Aug 2012 20:42:00 GMT</pubDate><guid isPermaLink="false">813b6dfd-644e-4573-a816-eebab56ba0d0:577979</guid><dc:creator>Bas</dc:creator><description>&lt;p&gt;This week I encountered the problem that the indexation of content didn&amp;rsquo;t seem to end. After 5 hours of crawling, my 1000 html pages of content still weren&amp;#39;t indexed by the Fast crawler. After putting on my Sherlock Holmes outfit, I started to investigate this problem. It turned out to be a real adventure to find a solution for this problem. &lt;/p&gt;
&lt;h2&gt;Investigating the problem&lt;/h2&gt;
&lt;p&gt;Firing up the ULS-viewer learned me that my development machine was too low on resources:&lt;/p&gt;
&lt;p&gt;&lt;em&gt;08/22/2012 21:22:36.40&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mssearch.exe (0x09D4)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x1448&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SharePoint Server Search&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Content Plugin&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dtv8&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Medium&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; At memory capacity. Load is 82%, configured to block at &lt;strong&gt;80%&lt;/strong&gt;. have been waiting 01:57 to queue this document&amp;nbsp; [documentmanager.cpp:969]&amp;nbsp; d:\office\source\search\native\gather\plugins\contentpi\documentmanager.cpp&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/em&gt;&lt;/p&gt;
&lt;p&gt;This meant that 6.4Gb of the available 8Gb of RAM was in use. The easy solution was to kill some processes, and after shutting down some applications, I saw my CPU usage increase, which meant that Fast was crawling my content again&amp;hellip;. for a minute or two.&amp;nbsp; So I decided to kill some more, somewhat useless, processes: Fast resumed to crawl my content again. But the process of a blocking crawl process repeated itself and it started out to be a race to keep memory usage under the 80%. Every minute I checked out if I could kill some (useless) processes to keep that memory usage below 80%: this killed my productivity. I tried to kill some of the more heavier processes to finish the crawl and even disabled some services and service applications: but for some reason my memory consumption was still too high. &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;Solving the problem&lt;/h2&gt;
&lt;p&gt;I decided that, if I couldn&amp;#39;t manage my memory to keep it below the magic number, I should change that magic number into something else. Of course today was my lucky day: a smart search query on google for &amp;quot;fast search sharepoint memory capacity block&amp;quot; didn&amp;#39;t return any relevant results. Using my brains and a swiss-army knife was now my only option to get a solution for this challenge. I wasn&amp;#39;t sure if this was a Fast specific problem, or a SharePoint search problem, and after starting (and finishing) a crawl using the Fast Query Service Application (which, in fact, is a SharePoint Server Search Application),&amp;nbsp;showed me that the problem didn&amp;#39;t arise here. I concluded that this was a fast specific problem. I started to check out on configuration files, Fast cmdlets and their parameters, configuration options in the central admin, but as I didn&amp;#39;t know what to look for exactly, this turned out to be a hopeless action. Finally, I even decided to manually check out the registry, and, of course, this action turned out to be useless too. This&amp;nbsp;made me&amp;nbsp;starting to believe that this &amp;quot;configurable&amp;quot; setting wasn&amp;#39;t so configurable. &lt;/p&gt;
&lt;p&gt;As a last hope, I fired up the sysinternals process monitor tool (&lt;a href="http://www.sysinternals.com/"&gt;http://www.sysinternals.com/&lt;/a&gt;), which shows all filesystem/registry/network activity for all processes, and configured it to display all registry and filesystem activity for the mssearch process. After restarting this sharepoint search service, I did a search for &amp;quot;memory&amp;quot;, and after a few hits, I just &amp;quot;knew&amp;quot; why I couldn&amp;#39;t find any configuration setting related to this memory limit: It just wasn&amp;#39;t there!&lt;/p&gt;
&lt;p&gt;&lt;a href="http://bloggingabout.net/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/bas/3276.procmon1.png"&gt;&lt;img src="http://bloggingabout.net/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/bas/3276.procmon1.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Manually adding this key to the registry was, of course, not the solution. After each restart of the service, the setting got deleted from the registry. But after taking a closer look at those registry keys, I remembered that the FastConnector:Collection and FastConnector:ContentDistributor were Fast specific service application settings&amp;nbsp;and tried to add this key to the Extended Properties of my Fast Service Application &lt;/p&gt;
&lt;p&gt;&lt;a href="http://bloggingabout.net/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/bas/1581.registry1.png"&gt;&lt;img src="http://bloggingabout.net/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/bas/1581.registry1.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;The key was added using the following powershell script:&lt;/p&gt;
&lt;p&gt;&lt;em&gt;$ssa = Get-SPServiceApplication | where {$_.DisplayName -eq &amp;quot;FastContentService&amp;quot; }&lt;br /&gt;$property = New-SPEnterpriseSearchExtendedConnectorProperty -SearchApplication $ssa -Name &amp;quot;MaxMemoryLoad&amp;quot; -Value &amp;quot;82&amp;quot;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;The MaxMemoryValue of &amp;quot;82&amp;quot; was taken on purpose, because I wanted to make sure that this new value was showing up in the logs when crawling content, to make sure it was really this setting. After restarting the Search service, process monitor told me that the key was loaded! &lt;/p&gt;
&lt;p&gt;&lt;a href="http://bloggingabout.net/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/bas/5516.procmon2.png"&gt;&lt;img src="http://bloggingabout.net/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/bas/5516.procmon2.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://bloggingabout.net/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/bas/7041.registry1.png"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;After checking out the ULS log, I was sure that I found the correct parameter:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;08/22/2012 22:27:22.69&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mssearch.exe (0x0A78)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x1648&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SharePoint Server Search&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Content Plugin&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dtv8&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Medium&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; At memory capacity. Load is 90%, configured to block at &lt;strong&gt;&lt;em&gt;82%&lt;/em&gt;&lt;/strong&gt;. have been waiting 02:27 to queue this document&amp;nbsp; [documentmanager.cpp:969]&amp;nbsp; d:\office\source\search\native\gather\plugins\contentpi\documentmanager.cpp&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;Summary&lt;/h2&gt;
&lt;p&gt;Changing the maximum memory load isn&amp;#39;t hard, it&amp;#39;s just undocumented. I strongly advise to not to change this value in production environments, as I don&amp;#39;t know if this is supported by Microsoft (it might be for a reason that there is no documentation on this subject). For development environments, this configuration setting is quite useful, as those enviroments, usually, take up a lot of resources.&amp;nbsp; I would suggest that shutting down unnecessary processes should always be the first option prior to adjust this configuration.&lt;/p&gt;
&lt;p&gt;Update: limiting the memory consumption of your sql server should be a very interesting option too, to limit your memory usage.&lt;/p&gt;</description></item><item><title>GeoSearch with Fast Search for SharePoint 2010 - Part 3: how to use the latitude and longitude in your queries</title><link>http://bloggingabout.net/blogs/bas/archive/2012/04/10/geosearch-with-fast-search-for-sharepoint-2010-part-3-how-to-use-the-latitude-and-longitude-in-your-queries.aspx</link><pubDate>Tue, 10 Apr 2012 19:21:00 GMT</pubDate><guid isPermaLink="false">813b6dfd-644e-4573-a816-eebab56ba0d0:577470</guid><dc:creator>Bas</dc:creator><description>&lt;p&gt;This is the&amp;nbsp;third and last&amp;nbsp;part of a series of blogposts about GeoSearch with Fast Search for SharePoint. I recently held some presentations about extending the power of Fast (on &lt;a href="http://www.diwug.nl/" title="Dutch Information Worker User Group"&gt;&lt;span style="color:#3399ff;"&gt;DIWUG&lt;/span&gt;&lt;/a&gt;&amp;nbsp;and the Dutch &lt;a href="http://www.techdays.nl/" title="Dutch Techdays 2012"&gt;&lt;span style="color:#3399ff;"&gt;TechDays 2012&lt;/span&gt;&lt;/a&gt;) and one of the subjects that I talked about was on how to search for locations, sort on distances etcetera. The recording of my sessions are available on &lt;a href="http://channel9.msdn.com/Events/Speakers/bas+lijten" title="Bas Lijten on Channel 9"&gt;&lt;span style="color:#3399ff;"&gt;Channel 9&lt;/span&gt;&lt;/a&gt;&amp;nbsp;in dutch.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://bloggingabout.net/blogs/bas/archive/2012/02/24/geosearch-with-fast-search-for-sharepoint-2010-part-1.aspx" title="GeoSearch with Fast Search for SharePoint"&gt;&lt;span style="color:#3399ff;"&gt;Part 1: why and how&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://bloggingabout.net/blogs/bas/archive/2012/02/24/geosearch-with-fast-search-for-sharepoint-2010-custom-pipeline-extensions.aspx"&gt;Part 2: the custom pipeline extension to enrich the Fast index with spatial data&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Part 3: how to use this metadata in your search queries (this post)&lt;/p&gt;
&lt;p&gt;Please make sure that&amp;nbsp;this code (and the code that is included) is not &amp;quot;production ready&amp;quot; at all, doesn&amp;#39;t implement the &lt;a href="http://en.wikipedia.org/wiki/Geographic_coordinate_system"&gt;geographic coordinate system&lt;/a&gt; correctly, as it has a range of [-180,180][-90,90] and that&amp;nbsp;the computations don&amp;#39;t take care of the fact that we live on a globe either. &lt;/p&gt;
&lt;h2&gt;Creating the queries&lt;/h2&gt;
&lt;p&gt;After implementing&amp;nbsp;the custom pipeline extension and all the data has been re-indexed, the index&amp;nbsp;isenriched with the latitude and longitude information. This information can be used&amp;nbsp;for some interesting queries and some interesting sorting algorithms. When working with spatial data, there are some different approaches that can be used to retrieve the nearest locations and sort them. There is however one caveat to take care of, when a custom sorting formula is used. For this blogpost, I query directly against the Fast query service application using the code below. I also return a set of 3 managed properties: title, latitude and longitude.&lt;/p&gt;
&lt;p&gt;The code gets the proxy that will be used, and instantiates a new keywordQuery object. On this object, I explicitly enable FQL, select my resultsprovider and I set the rowlimit to 20, as this set contains enough results to be displayed&lt;/p&gt;
&lt;p&gt;&lt;a href="http://bloggingabout.net/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/bas/6378.searchservice_5F00_code_5F00_snippet.png"&gt;&lt;img src="http://bloggingabout.net/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/bas/6378.searchservice_5F00_code_5F00_snippet.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;Retrieve all results and sort them by distance to a certain point&lt;/h3&gt;
&lt;p&gt;This query is easy to execute, as the query &amp;quot;#&amp;quot; will retrieve all items. but when the managed properties are used in a sorting formula, things change. As the managed properties are of type decimal, these properties are handled differently, as described in &lt;a href="http://bloggingabout.net/blogs/bas/archive/2011/11/05/fast-search-for-sharepoint-caveat-apply-a-sortformula-with-managed-properties-of-type-decimals.aspx"&gt;this blogpost&lt;/a&gt;. For the sort formula, different algorithms can be used. Two populair sorting algorithms are the following:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Euclidean_distance"&gt;Euclidean distance&lt;/a&gt;: the shortest, unique distance between two points.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Taxicab_geometry"&gt;Taxicab distance&lt;/a&gt;: the distance between two points is the absolute difference of their coordinates. The path between the two points doesn&amp;#39;t have to be unique.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;the next image shows the difference between the two different algorithms. The green line represents the euclidean algorithm and is&amp;nbsp;the&amp;nbsp;unique, shortest path between two points. The red, blue and yellow paths represent variations on the taxicab geometry and are indeed, not unique. The image comes from wikipedia, btw.&lt;/p&gt;
&lt;p&gt;&lt;img height="283" width="283" src="http://upload.wikimedia.org/wikipedia/commons/thumb/0/08/Manhattan_distance.svg/283px-Manhattan_distance.svg.png" alt="File:Manhattan distance.svg" /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;For this blogpost, I use the taxicab algorithm, as it is, by far, the most easy to implement ;). Basically, this algorithm is as follows:&lt;/p&gt;
&lt;p&gt;distance = abs(queriedLocation.latitude - result.latitude) + abs(queriedLocation.longitude-result.longitude). In code, I implemented this with the following snippet:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://bloggingabout.net/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/bas/7536.sortformula.png"&gt;&lt;img src="http://bloggingabout.net/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/bas/7536.sortformula.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;this snippet creates the string that is used as sortformula. {0} and {1} are replaced by the latitude and longitude of the location that I need to find the nearest results for. The latitude and longitude in the formula, are the names of the managed properties that are retrieved from the index. For every result that is returned from the query, this formula is executed, and the resultset will be ordered based on the outcome of this formula. This sortformula needs to be added to the Sortlist, and the last step that is needed, is to execute the query. This is shown in the following snippet.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;a href="http://bloggingabout.net/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/bas/7573.sortformula_5F00_finished.png"&gt;&lt;img src="http://bloggingabout.net/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/bas/7573.sortformula_5F00_finished.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;When using this technique of getting a resultset and sort using a sortformula, the rank that is returned is zero. Relevance models can&amp;#39;t be used to sort within this resultset,&amp;nbsp;and,&amp;nbsp;for example, operators like xrank can&amp;#39;t be used either.&lt;/p&gt;
&lt;h3&gt;Get all results within a certain area&lt;/h3&gt;
&lt;p&gt;Another method of getting results, which gives a bit more flexibility, is to retrieve all results within a certain area:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://bloggingabout.net/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/bas/7288.Area-search.png"&gt;&lt;img src="http://bloggingabout.net/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/bas/7288.Area-search.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;the cool thing about using this technique, is that a sorfformula to get all the nearest results, isn&amp;#39;t needed, because that is already managed that in the query itself. Within the returned resultset, relevance models can be applied to rank results based on other properties!&lt;/p&gt;
&lt;p&gt;a formula like this looks like the following:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;set the latitude and longitude offsets&lt;/li&gt;
&lt;li&gt;compute the borders of the bounding box&lt;/li&gt;
&lt;li&gt;create the query: return all results with the latitude and the longitude in the respective ranges&lt;/li&gt;
&lt;li&gt;execute the query&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;a href="http://bloggingabout.net/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/bas/6813.boundingbox_5F00_normal.png"&gt;&lt;img src="http://bloggingabout.net/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/bas/6813.boundingbox_5F00_normal.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;the fun starts when&amp;nbsp;a xrank operator is thrown in:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://bloggingabout.net/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/bas/8867.boundingbox_5F00_xrank.png"&gt;&lt;img src="http://bloggingabout.net/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/bas/8867.boundingbox_5F00_xrank.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;the possibilities are almost limitless, when this technique is used! Queries like &amp;quot;return all restaurants in the neighbourhoud, but push all restaurants that pay for advertisements to the top&amp;quot;. other possibilities are executing queries to retrieve items within an area, and rank them based on the keywords in the query. Think about using the Entity extractor &amp;quot;Location&amp;quot; that extracts all locations from a document, get all spatial data for that document, and execute a query like &amp;quot;give me all documents on burglaries near my current location&amp;quot;.&lt;/p&gt;
&lt;p&gt;the query has to be passed to the keywordquery object and thereafter be executed, just like in the other example.&lt;/p&gt;
&lt;h4&gt;Even more coolness!!&lt;/h4&gt;
&lt;p&gt;When all the results are returned, we can show the results in a boring list. But there is another option. Because we do have all latitude and longitude information, it&amp;#39;s easy to plot them on a map. On a BING-map :D. Documentation on the API can be found here: &lt;a href="http://www.microsoft.com/maps/developers/web.aspx"&gt;http://www.microsoft.com/maps/developers/web.aspx&lt;/a&gt;. An example can be found as well in the code that is attached to this post.&lt;/p&gt;
&lt;p&gt;Basically, all you have to do is the following:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Set the Bing-credentials and the applicationID (a free key that is available via the &lt;a href="http://www.microsoft.com/maps/developers/web.aspx"&gt;bing maps developer center&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;set the center of the map&lt;/li&gt;
&lt;li&gt;for each result to plot, add a pushpin&lt;/li&gt;
&lt;li&gt;set the image size&lt;/li&gt;
&lt;li&gt;get the map uri from the imageryservice&lt;/li&gt;
&lt;li&gt;include the image in your webpart&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;I dont explain much of the code, because it isn&amp;#39;t to hard and self-explanatory&lt;/p&gt;
&lt;p&gt;&lt;a href="http://bloggingabout.net/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/bas/0160.CreateMap.png"&gt;&lt;img src="http://bloggingabout.net/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/bas/0160.CreateMap.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;this results in ultimately in the following webpart. Imagine what can be done. Add some nice javascripts to the pins to plot a route to the target or&amp;nbsp;give extra information.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://bloggingabout.net/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/bas/3750.bingmaps.png"&gt;&lt;img src="http://bloggingabout.net/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/bas/3750.bingmaps.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;summary&lt;/h2&gt;
&lt;p&gt;we saw in this blogpost that there are several techniques to query for and sort on geo-locations. using these techniques in combination with some existing services, for example BING-Maps, can result in some really cool webparts. Code will be posted soon!&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description></item><item><title>GeoSearch with Fast Search for SharePoint 2010 - Part 2: Custom pipeline extensions</title><link>http://bloggingabout.net/blogs/bas/archive/2012/02/24/geosearch-with-fast-search-for-sharepoint-2010-custom-pipeline-extensions.aspx</link><pubDate>Fri, 24 Feb 2012 19:47:00 GMT</pubDate><guid isPermaLink="false">813b6dfd-644e-4573-a816-eebab56ba0d0:577293</guid><dc:creator>Bas</dc:creator><description>&lt;p&gt;This is the second part of a series of blogposts about GeoSearch with Fast Search for SharePoint. I recently held some presentations about extending the power of Fast (on &lt;a href="http://www.diwug.nl/" title="Dutch Information Worker User Group"&gt;&lt;span style="color:#3399ff;"&gt;DIWUG&lt;/span&gt;&lt;/a&gt;&amp;nbsp;and the Dutch &lt;a href="http://www.techdays.nl/" title="Dutch Techdays 2012"&gt;&lt;span style="color:#3399ff;"&gt;TechDays 2012&lt;/span&gt;&lt;/a&gt;) and one of the subjects that I talked about was on how to search for locations, sort on distances etcetera. The recording of my sessions will be made available on &lt;a href="http://channel9.msdn.com/Events/Speakers/bas+lijten" title="Bas Lijten on Channel 9"&gt;&lt;span style="color:#3399ff;"&gt;Channel 9&lt;/span&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://bloggingabout.net/blogs/bas/archive/2012/02/24/geosearch-with-fast-search-for-sharepoint-2010-part-1.aspx" title="GeoSearch with Fast Search for SharePoint"&gt;Part 1: why and how&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Part 2: the custom pipeline extension to enrich the Fast index with spatial data&lt;/p&gt;
&lt;p&gt;&lt;a href="http://bloggingabout.net/blogs/bas/archive/2012/04/10/geosearch-with-fast-search-for-sharepoint-2010-part-3-how-to-use-the-latitude-and-longitude-in-your-queries.aspx"&gt;Part 3: how to use this metadata in your search queries&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;EDIT: &lt;a href="http://bloggingabout.net/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/bas.Source/4834.LocationExtractor.zip" title="Custom pipeline extension"&gt;Sourcode for the custom pipeline extension&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Indexing the data&lt;/h2&gt;
&lt;p&gt;As previously blogged, Fast crawles data and puts this data into the index.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://bloggingabout.net/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/bas/5153.IndexGeo.png"&gt;&lt;img src="http://bloggingabout.net/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/bas/5153.IndexGeo.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;One of the processes that happens during the indexation process, is processing the content. During this process, this data is traversed through a &amp;quot;pipeline&amp;quot;, which consists of several stages:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://bloggingabout.net/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/bas/8611.Fast-Search-pipeline.png"&gt;&lt;img src="http://bloggingabout.net/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/bas/8611.Fast-Search-pipeline.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The stages as shown in the picture above is just a small subset, but basically, it does the following:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Normalize the document -&amp;gt; the data of each input is normalized, so that every stage doesn&amp;#39;t have problems processing this content&lt;/li&gt;
&lt;li&gt;Language detection -&amp;gt; determine the language of the document. This metadata&amp;nbsp;is used in other pipelines to, for example, determine what dictionary should be used.&lt;/li&gt;
&lt;li&gt;Lemmatizer -&amp;gt; based on the language that is detected, lemma and stemma are determined of words. &lt;a href="http://en.wikipedia.org/wiki/Lemma_(morphology)" title="lemma wikipedia"&gt;the definition on wikipedia&lt;/a&gt;:&amp;nbsp; &lt;b&gt;canonical form&lt;/b&gt;, &lt;b&gt;dictionary form&lt;/b&gt;, or &lt;b&gt;citation form&lt;/b&gt; of a set of words (headword).&amp;nbsp;Think about the following: bank - banks or good - better - best&lt;/li&gt;
&lt;li&gt;Entity Extraction -&amp;gt; extracts entities, based on a dictionary, from the data that is processed. Out of the box &lt;em&gt;Locations&lt;/em&gt;, Persons and companies are extracted&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The cool thing about this pipeline is: this pipeline can be extended!&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;Extending the pipeline&lt;/h2&gt;
&lt;p&gt;As we want to work with spatial data, a custom pipeline needs to be created, which has any location data as input, and which can output spatial data: latitude and longitude. All these properties need to be crawled properties:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://bloggingabout.net/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/bas/5611.Custom-Pipeline.png"&gt;&lt;img src="http://bloggingabout.net/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/bas/5611.Custom-Pipeline.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;What&amp;nbsp;can be used as&amp;nbsp;input...&lt;/h3&gt;
&lt;p&gt;Before the pipeline can be created, it&amp;#39;s needed to know &lt;em&gt;what &lt;/em&gt;kind of data is available. It&amp;#39;s important to know what data is available, where it resides, and how it can be used to be processed. This data must be available through crawled properties. Some data that is often available is:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;locations (Data retrieved using the Location Entity Extractor)&lt;/li&gt;
&lt;li&gt;ows_WorkAddress (standard sharepoint sitecolumn)&lt;/li&gt;
&lt;li&gt;ows_City (standard sharepoint sitecolumn)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;When other data needs to be processed, make sure to check out what it is named inside the crawled properties overview in the Fast Query Service applications. In this example, I am using the address and city as an input.&lt;/p&gt;
&lt;h3&gt;...and spit it out..&lt;/h3&gt;
&lt;p&gt;This is an easy one. As we know we want to use latitude and longitude information to do some nice computations with, these ones can be defined as crawled properties. This can be done using the following powershell commands:&lt;/p&gt;
&lt;pre style="FONT-FAMILY:Consolas;BACKGROUND:white;COLOR:black;FONT-SIZE:13px;"&gt;$guid&amp;nbsp;=&amp;nbsp;[System.Guid]::NewGuid().toString()
$propset&amp;nbsp;=&amp;nbsp;New-FASTSearchMetadataCategory&amp;nbsp;-Name&amp;nbsp;&amp;quot;spatial&amp;quot;&amp;nbsp;-Propset&amp;nbsp;$guid
New-FASTSearchMetadataCrawledProperty&amp;nbsp;-Name&amp;nbsp;&amp;quot;latitude&amp;quot;&amp;nbsp;-VariantType&amp;nbsp;5&amp;nbsp;-Propset&amp;nbsp;$guid
New-FASTSearchMetadataCrawledProperty&amp;nbsp;-Name&amp;nbsp;&amp;quot;longitude&amp;quot;&amp;nbsp;-VariantType&amp;nbsp;5&amp;nbsp;-Propset&amp;nbsp;$guid&lt;/pre&gt;
&lt;p&gt;the command creates a separate category named &amp;quot;spatial&amp;quot; and created two crawled properties of variant type &amp;quot;5&amp;quot;, which is, &lt;a href="http://technet.microsoft.com/en-us/library/ff191231.aspx" title="variant type fast search for sharepoint"&gt;according to Technet&lt;/a&gt;, a decimal.&lt;/p&gt;
&lt;h3&gt;Between Sheets&lt;/h3&gt;
&lt;p&gt;a custom pipeline extension can be any type of executable: powershell, .bat, or an .exe. In this example a .exe is build using visual studio. All have in common that they have xml as input and xml as output. For the example, the following xml is used as input:&lt;/p&gt;
&lt;pre style="FONT-FAMILY:Consolas;BACKGROUND:white;COLOR:black;FONT-SIZE:13px;"&gt;&lt;span style="COLOR:blue;"&gt;&amp;lt;?&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;xml&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="COLOR:red;"&gt;version&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="COLOR:blue;"&gt;1.0&lt;/span&gt;&amp;quot;&lt;span style="COLOR:blue;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="COLOR:red;"&gt;encoding&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="COLOR:blue;"&gt;utf-8&lt;/span&gt;&amp;quot;&lt;span style="COLOR:blue;"&gt;?&amp;gt;&lt;/span&gt;
&lt;span style="COLOR:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;Document&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;
&lt;span style="COLOR:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;CrawledProperty&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="COLOR:red;"&gt;propertySet&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="COLOR:blue;"&gt;00130329-0000-0130-c000-000000131346&lt;/span&gt;&amp;quot;&lt;span style="COLOR:blue;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="COLOR:red;"&gt;varType&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="COLOR:blue;"&gt;31&lt;/span&gt;&amp;quot;&lt;span style="COLOR:blue;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="COLOR:red;"&gt;propertyName&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="COLOR:blue;"&gt;ows_WorkCity&lt;/span&gt;&amp;quot;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;City&lt;span style="COLOR:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;CrawledProperty&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;
&lt;span style="COLOR:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;CrawledProperty&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="COLOR:red;"&gt;propertySet&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="COLOR:blue;"&gt;00130329-0000-0130-c000-000000131346&lt;/span&gt;&amp;quot;&lt;span style="COLOR:blue;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="COLOR:red;"&gt;varType&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="COLOR:blue;"&gt;31&lt;/span&gt;&amp;quot;&lt;span style="COLOR:blue;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="COLOR:red;"&gt;propertyName&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="COLOR:blue;"&gt;ows_WorkAddress&lt;/span&gt;&amp;quot;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;Address&lt;span style="COLOR:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;CrawledProperty&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;
&lt;span style="COLOR:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;Document&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;and the output that will be created looks the same:&lt;/p&gt;
&lt;pre style="FONT-FAMILY:Consolas;BACKGROUND:white;COLOR:black;FONT-SIZE:13px;"&gt;&lt;span style="COLOR:blue;"&gt;&amp;lt;?&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;xml&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="COLOR:red;"&gt;version&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="COLOR:blue;"&gt;1.0&lt;/span&gt;&amp;quot;&lt;span style="COLOR:blue;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="COLOR:red;"&gt;encoding&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="COLOR:blue;"&gt;utf-8&lt;/span&gt;&amp;quot;&lt;span style="COLOR:blue;"&gt;?&amp;gt;&lt;/span&gt;
&lt;span style="COLOR:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;Document&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;
&lt;span style="COLOR:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;CrawledProperty&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="COLOR:red;"&gt;propertySet&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="COLOR:blue;"&gt;00130329-0000-0130-c000-000000131346&lt;/span&gt;&amp;quot;&lt;span style="COLOR:blue;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="COLOR:red;"&gt;propertyName&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="COLOR:blue;"&gt;latitude&lt;/span&gt;&amp;quot;&lt;span style="COLOR:blue;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="COLOR:red;"&gt;varType&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="COLOR:blue;"&gt;5&lt;/span&gt;&amp;quot;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;99.9999999999999&lt;span style="COLOR:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;CrawledProperty&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;
&lt;span style="COLOR:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;CrawledProperty&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="COLOR:red;"&gt;propertySet&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="COLOR:blue;"&gt;00130329-0000-0130-c000-000000131346&lt;/span&gt;&amp;quot;&lt;span style="COLOR:blue;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="COLOR:red;"&gt;propertyName&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="COLOR:blue;"&gt;longitude&lt;/span&gt;&amp;quot;&lt;span style="COLOR:blue;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="COLOR:red;"&gt;varType&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="COLOR:blue;"&gt;5&lt;/span&gt;&amp;quot;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;99.9999999999999&lt;span style="COLOR:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;CrawledProperty&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;
&lt;span style="COLOR:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;Document&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;p&gt;Using this information,&amp;nbsp;when&amp;nbsp;creating a custom pipeline,&amp;nbsp;the following pattern is always recognizable:&lt;/p&gt;
&lt;p&gt;Read the input:&lt;/p&gt;
&lt;pre style="FONT-FAMILY:Consolas;BACKGROUND:white;COLOR:black;FONT-SIZE:13px;"&gt;&amp;nbsp;XDocument&amp;nbsp;inputDoc&amp;nbsp;=&amp;nbsp;XDocument.Load(args[0]);
 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="COLOR:green;"&gt;//get&amp;nbsp;the&amp;nbsp;Location&amp;nbsp;from&amp;nbsp;the&amp;nbsp;input&amp;nbsp;item:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="COLOR:green;"&gt;//&amp;nbsp;care:&amp;nbsp;vartype&amp;nbsp;==&amp;nbsp;&amp;quot;31&amp;quot;:&amp;nbsp;...&lt;/span&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="COLOR:blue;"&gt;var&lt;/span&gt;&amp;nbsp;cities&amp;nbsp;=&amp;nbsp;&lt;span style="COLOR:blue;"&gt;from&lt;/span&gt;&amp;nbsp;cp&amp;nbsp;&lt;span style="COLOR:blue;"&gt;in&lt;/span&gt;&amp;nbsp;inputDoc.Descendants(&lt;span style="COLOR:#a31515;"&gt;&amp;quot;CrawledProperty&amp;quot;&lt;/span&gt;)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="COLOR:blue;"&gt;where&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR:blue;"&gt;new&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR:#2b91af;"&gt;Guid&lt;/span&gt;(cp.Attribute(&lt;span style="COLOR:#a31515;"&gt;&amp;quot;propertySet&amp;quot;&lt;/span&gt;).Value).Equals(IN_LOCATION)&amp;nbsp;&amp;amp;&amp;amp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cp.Attribute(&lt;span style="COLOR:#a31515;"&gt;&amp;quot;propertyName&amp;quot;&lt;/span&gt;).Value&amp;nbsp;==&amp;nbsp;&lt;span style="COLOR:#a31515;"&gt;&amp;quot;ows_WorkCity&amp;quot;&lt;/span&gt;&amp;nbsp;&amp;amp;&amp;amp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cp.Attribute(&lt;span style="COLOR:#a31515;"&gt;&amp;quot;varType&amp;quot;&lt;/span&gt;).Value&amp;nbsp;==&amp;nbsp;&lt;span style="COLOR:#a31515;"&gt;&amp;quot;31&amp;quot;&lt;/span&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="COLOR:blue;"&gt;select&lt;/span&gt;&amp;nbsp;cp.Value;&lt;/pre&gt;
&lt;p&gt;and write back the output:&lt;/p&gt;
&lt;pre style="FONT-FAMILY:Consolas;BACKGROUND:white;COLOR:black;FONT-SIZE:13px;"&gt;&lt;span style="COLOR:green;"&gt;            //&amp;nbsp;write&amp;nbsp;back&amp;nbsp;results&lt;/span&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="COLOR:blue;"&gt;var&lt;/span&gt;&amp;nbsp;outputElement&amp;nbsp;=&amp;nbsp;&lt;span style="COLOR:blue;"&gt;new&lt;/span&gt;&amp;nbsp;XElement(&lt;span style="COLOR:#a31515;"&gt;&amp;quot;Document&amp;quot;&lt;/span&gt;);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="COLOR:blue;"&gt;if&lt;/span&gt;&amp;nbsp;(coordinate!=&lt;span style="COLOR:blue;"&gt;null&lt;/span&gt;)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="COLOR:green;"&gt;//&amp;nbsp;Add&amp;nbsp;crawled&amp;nbsp;properties&lt;/span&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;outputElement.Add(
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="COLOR:blue;"&gt;new&lt;/span&gt;&amp;nbsp;XElement(&lt;span style="COLOR:#a31515;"&gt;&amp;quot;CrawledProperty&amp;quot;&lt;/span&gt;,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="COLOR:blue;"&gt;new&lt;/span&gt;&amp;nbsp;XAttribute(&lt;span style="COLOR:#a31515;"&gt;&amp;quot;propertySet&amp;quot;&lt;/span&gt;,&amp;nbsp;OUT_GROUP),
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="COLOR:blue;"&gt;new&lt;/span&gt;&amp;nbsp;XAttribute(&lt;span style="COLOR:#a31515;"&gt;&amp;quot;propertyName&amp;quot;&lt;/span&gt;,&amp;nbsp;Propname),
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="COLOR:blue;"&gt;new&lt;/span&gt;&amp;nbsp;XAttribute(&lt;span style="COLOR:#a31515;"&gt;&amp;quot;varType&amp;quot;&lt;/span&gt;,&amp;nbsp;5),
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;coordinate.Longitude)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;outputElement.Save(args[1]);&lt;/pre&gt;
&lt;p&gt;But what happens in between, is more interesting! the input data is simply passed through a geocode service, and the results are simply returned as spatial data. Below is a&amp;nbsp;somewhat simplified&amp;nbsp;overview of the code:&lt;/p&gt;
&lt;pre style="FONT-FAMILY:Consolas;BACKGROUND:white;COLOR:black;FONT-SIZE:13px;"&gt;&lt;span style="COLOR:green;"&gt;            //&amp;nbsp;create&amp;nbsp;geocode&amp;nbsp;request&amp;nbsp;query&amp;nbsp;(comma&amp;nbsp;separated&amp;nbsp;string:&amp;nbsp;location,&amp;nbsp;address)&lt;/span&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;geocodeRequest.Query&amp;nbsp;=&amp;nbsp;query;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="COLOR:green;"&gt;//instantiate&amp;nbsp;geocode&amp;nbsp;service&lt;/span&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="COLOR:blue;"&gt;var&lt;/span&gt;&amp;nbsp;geocodeService&amp;nbsp;=&amp;nbsp;&lt;span style="COLOR:blue;"&gt;new&lt;/span&gt;&amp;nbsp;GeocodeServiceClient(&lt;span style="COLOR:#a31515;"&gt;&amp;quot;BasicHttpBinding_IGeocodeService&amp;quot;&lt;/span&gt;);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="COLOR:green;"&gt;//&amp;nbsp;and&amp;nbsp;query&amp;nbsp;the&amp;nbsp;service.&amp;nbsp;Do&amp;nbsp;whatever&amp;nbsp;you&amp;nbsp;want&amp;nbsp;with&amp;nbsp;the&amp;nbsp;response!&lt;/span&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="COLOR:blue;"&gt;var&lt;/span&gt;&amp;nbsp;response&amp;nbsp;=&amp;nbsp;geocodeService.Geocode(geocodeRequest);
&lt;/pre&gt;
&lt;p&gt;And that is all that is needed to create the custom pipeline extension.&lt;/p&gt;
&lt;h2&gt;How to insert it in the pipeline&lt;/h2&gt;
&lt;p&gt;now the pipeline is ready, all that is needed, is to hook it up to the pipeline. &lt;em&gt;As of service pack 1&lt;/em&gt;, this is done as follows:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Go to the bin-directory of your Fast installation (default: C:\FASTSearch\bin)&lt;/li&gt;
&lt;li&gt;copy extractor together with it&amp;#39;s required files (filename.xmlserializer.dll, filename.app,config)&lt;/li&gt;
&lt;li&gt;Open the file &amp;quot;pipelineextensibility.xml&amp;quot; in the etc directory (C:\FASTSearch\etc)&lt;/li&gt;
&lt;li&gt;Insert the following xml:&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&amp;nbsp; &amp;lt;Run command=&amp;quot;C:\FASTSearch\bin\LocationExtractor.exe %(input)s %(output)s&amp;quot;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Input&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;CrawledProperty propertySet=&amp;quot;00130329-0000-0130-c000-000000131346&amp;quot; varType=&amp;quot;31&amp;quot; propertyName=&amp;quot;ows_WorkAddress&amp;quot; /&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;CrawledProperty propertySet=&amp;quot;00130329-0000-0130-c000-000000131346&amp;quot; varType=&amp;quot;31&amp;quot; propertyName=&amp;quot;ows_WorkCity&amp;quot; /&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/Input&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Output&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;CrawledProperty propertySet=&amp;quot;00130329-0000-0130-c000-000000131346&amp;quot; varType=&amp;quot;5&amp;quot; propertyName=&amp;quot;latitude&amp;quot; /&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;CrawledProperty propertySet=&amp;quot;00130329-0000-0130-c000-000000131346&amp;quot; varType=&amp;quot;5&amp;quot; propertyName=&amp;quot;longitude&amp;quot; /&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/Output&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;lt;/Run&amp;gt;&lt;/p&gt;
&lt;p&gt;all you need to do is: map the crawled properties to a managed property, execute psctrl reset to restart the processer servers and do a full recrawl. Your data is then ready to be queried..&lt;/p&gt;
&lt;h2&gt;Summary&lt;/h2&gt;
&lt;p&gt;In this blogpost, we learned that it is easy to extend the fast pipeline, and how to do it. In the next blogpost I&amp;#39;ll show how to query this data.&lt;/p&gt;</description></item><item><title>Fast Search for SharePoint caveat: Apply a sortformula with managed properties of type decimals</title><link>http://bloggingabout.net/blogs/bas/archive/2011/11/05/fast-search-for-sharepoint-caveat-apply-a-sortformula-with-managed-properties-of-type-decimals.aspx</link><pubDate>Sat, 05 Nov 2011 08:53:00 GMT</pubDate><guid isPermaLink="false">813b6dfd-644e-4573-a816-eebab56ba0d0:576462</guid><dc:creator>Bas</dc:creator><description>&lt;p&gt;&lt;a href="http://bloggingabout.net/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/bas/4212.managed-property.png"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Fast Search for SharePoint provides &lt;a target="_blank" href="http://msdn.microsoft.com/en-us/library/ff394654.aspx" title="ranking and sorting in Fast Search for SharePoint 2010"&gt;four great possibilities&lt;/a&gt; to influence the sort order of your resultset that was returned:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Sort by Managed property&lt;/li&gt;
&lt;li&gt;Sort by Rank&lt;/li&gt;
&lt;li&gt;Sort by Formula&lt;/li&gt;
&lt;li&gt;Sort in Random order &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;When I was working on my presentaion and demo for the &lt;a target="_blank" href="http://www.diwug.nl" title="Dutch Information Worker User Group"&gt;diwug&lt;/a&gt; (Dutch Information Worker User Group) last week, to show off on how you can improve your search experience by using custom ranking models, custom sort orders and extending the pipeline, I ran into an issue that I wasn&amp;#39;t aware off. When I used a custom sort formula, I did get the right &lt;strong&gt;&lt;em&gt;result set&lt;/em&gt;&lt;/strong&gt;, but&amp;nbsp;not the right &lt;strong&gt;&lt;em&gt;result order&lt;/em&gt;&lt;/strong&gt;.&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;The Scenario&lt;/h2&gt;
&lt;p&gt;I created a custom pipeline extension, which should enrich the Fast index with the latitude and longitude of a given Location (how this works, will be shown in my next blogpost). Whenever I create custom query, based on a given location, I could create a custom sortformula for Fast, which sorts the resultset for the query based on distance.&lt;/p&gt;
&lt;h2&gt;The Issue&lt;/h2&gt;
&lt;p&gt;the issue I came accross, was that the resultset I got returned, wasn&amp;#39;t in line with the results I expected at all. The data that was returned from the custom pipeline extensions, were&amp;nbsp;mapped to my mananged properties latitude and longitude, both of type decimal:&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://bloggingabout.net/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/bas/7612.managed-property.png"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://bloggingabout.net/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/bas/5481.managed-property.png"&gt;&lt;img src="http://bloggingabout.net/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/bas/5481.managed-property.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The query I executed was the following:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://bloggingabout.net/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/bas/6835.query.png"&gt;&lt;img src="http://bloggingabout.net/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/bas/6835.query.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;and this query provided me the following dataset. the result&lt;em&gt;set&lt;/em&gt; returned by the query was correct!&lt;/p&gt;
&lt;p&gt;&lt;a href="http://bloggingabout.net/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/bas/4336.dataset.png"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://bloggingabout.net/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/bas/6746.dataset.png"&gt;&lt;img src="http://bloggingabout.net/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/bas/6746.dataset.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Based on the sortformula below, I tried to predict the outcome:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://bloggingabout.net/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/bas/6648.sortformula.png"&gt;&lt;img src="http://bloggingabout.net/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/bas/6648.sortformula.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The expected results and the actual results:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://bloggingabout.net/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/bas/5344.outcome.png"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://bloggingabout.net/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/bas/6644.outcome.png"&gt;&lt;img src="http://bloggingabout.net/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/bas/6644.outcome.png" border="0" alt="" /&gt;&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;As seen in the table, the actual resultorder that was returned, wasn&amp;#39;t in line with the expected resultorder at all. &lt;/p&gt;
&lt;h2&gt;&amp;nbsp;What Happened?&lt;/h2&gt;
&lt;p&gt;When I digged into this problem, my eye felled on &lt;a target="_blank" href="http://msdn.microsoft.com/en-us/library/ff394654.aspx" title="custom ranking and sorting in Fast Search for SharePoint 2010"&gt;one line of documentation on MSDN&lt;/a&gt;: &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;a href="http://bloggingabout.net/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/bas/5125.MSDN.png"&gt;&lt;img height="124" width="641" src="http://bloggingabout.net/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/bas/5125.MSDN.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;a href="http://bloggingabout.net/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/bas/2235.MSDN.png"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;this line tells us that&amp;nbsp;every managed property of type&amp;nbsp;decimal that is used in a formula, is treated in another way then other numeric types like integers and doubles. Whenever a sortformula is applied to the resultset, all managed properties of type &lt;em&gt;&amp;#39;decimal&amp;#39;, &lt;/em&gt;are multiplied by (10^decimal digits). Retrieving the managed property via powerShell, does learn us that &amp;quot;decimal digits&amp;quot; is not a property of that managed property, but it&amp;#39;s called &amp;quot;decimal places&amp;quot;:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://bloggingabout.net/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/bas/3618.managed-property-_2D00_-decimal-places.png"&gt;&lt;img src="http://bloggingabout.net/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/bas/3618.managed-property-_2D00_-decimal-places.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Taken this into account, I made a new computation in excel, and this provided me exactly the results that were returned to me: In the formula I used, fast replaces managed properties based on type decimal by 10^decimalPlaces.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;latitude = (latitude * 10^decimalPlaces)&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;In my case, this becomes:&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;strong&gt;latitude = latitude * 1000.&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Whenever this computation is taken into account with excel, it explains that I didn&amp;#39;t get the &amp;quot;right&amp;quot; sort order.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://bloggingabout.net/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/bas/0508.resultsset.png"&gt;&lt;img src="http://bloggingabout.net/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/bas/0508.resultsset.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;How to Solve this?&lt;/h2&gt;
&lt;p&gt;Now it is known that Fast handles managed properties of type decimal in another way, we can take this into account into our code. Simply multiply the value that you want to use by 10^decimal places. The results are exactly in line with the results that I couldn&amp;#39;t explain before:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://bloggingabout.net/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/bas/2727.resultset2.png"&gt;&lt;img src="http://bloggingabout.net/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/bas/2727.resultset2.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;While solving the issue,&amp;nbsp; I was thinking about the query I executed. While I made use of the same managed properties, the resultset that was returned by the query, was correct, while the sortorder, wasn&amp;#39;t. Analyzing the query executed, learned me that FAST handles the decimalPlaces in the query parameters itself using a query transform:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://bloggingabout.net/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/bas/7142.querytransform.png"&gt;&lt;img src="http://bloggingabout.net/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/bas/7142.querytransform.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;We learned that Fast does handle managed properties of type decimal in&amp;nbsp;different way than other numeric values when results are sorted using a sortformula. We also learned that Fast does handle the sortFormula in another way then it does when querying Fast: Fast takes the digital places into account when querying the index, but doesn&amp;#39;t do this when sorting the results when using a sort formula. Keep in mind, then when those managed properties are used in sortformulas, that the computation you want to execute with that managed property, must take the digital places into account.&lt;/p&gt;</description></item><item><title>Fast Search for SharePoint problems - simplified architecture diagram</title><link>http://bloggingabout.net/blogs/bas/archive/2011/08/09/fast-search-for-sharepoint-installation-problems-simplified-architecture-diagram.aspx</link><pubDate>Tue, 09 Aug 2011 21:54:00 GMT</pubDate><guid isPermaLink="false">813b6dfd-644e-4573-a816-eebab56ba0d0:543102</guid><dc:creator>Bas</dc:creator><description>&lt;p&gt;Recently I had a few &lt;span class="short_text" lang="en" id="result_box"&gt;&lt;span class="hps"&gt;colleagues (and myself) who&amp;nbsp;tried to install&amp;nbsp;FAST search for SharePoint on their development workstation. Despite the&lt;a href="http://technet.microsoft.com/en-us/library/ff381243.aspx" title="Fast installation and configuration guide on MSDN"&gt; well written installation guidelines on MSDN&lt;/a&gt;, they had several problems, and sadly enough, they all faced different problems. These problems varied from not able to crawl the content to not being able to query the indexed content. As most of the colleagues weren&amp;#39;t too familiar with Fast (and SharePoint search in general), I decided to create a small architecture diagram of the SharePoint 2010 Search Service Applications, Fast Search for SharePoint and (some of)&amp;nbsp;their junction points. These junction points are displayed in the image below. To simplify the diagram, some items have been removed, the search query proxy is one example. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span class="short_text" lang="en"&gt;&lt;span class="hps"&gt;&lt;span class="short_text" lang="en"&gt;&lt;span class="hps"&gt;&lt;a href="http://bloggingabout.net/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/bas/1537.Fast_2D00_diagram.png"&gt;&lt;img src="http://bloggingabout.net/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/bas/1537.Fast_2D00_diagram.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span class="short_text" lang="en"&gt;&lt;span class="hps"&gt;&lt;span class="short_text" lang="en"&gt;&lt;span class="hps"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span class="short_text" lang="en"&gt;&lt;span class="hps"&gt;&lt;span class="short_text" lang="en"&gt;&lt;span class="hps"&gt;&lt;/span&gt;&lt;/span&gt;The diagram helped me and my colleagues to&amp;nbsp;pinpoint the problems and I hope it will help you in the future with pinpointing problems (well, I hope you wont have any problems at all, but hey, it&amp;#39;s Fast ;)).&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span class="short_text" lang="en"&gt;&lt;span class="hps"&gt;This post just covers a small subset of problems, but I think that the majority of most common problems are covered here. Whenever you think that a certain common problem is missing in here, please contact me, I will add it as soon as possible. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span class="short_text" lang="en"&gt;&lt;span class="hps"&gt;Use the following log/event locations to pinpoint problems:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span class="short_text" lang="en"&gt;&lt;span class="hps"&gt;c:\fastsearch\var\log&lt;/span&gt;&lt;/span&gt; 
&lt;ul&gt;
&lt;li&gt;&lt;span class="short_text" lang="en"&gt;&lt;span class="hps"&gt;contains a &lt;em&gt;lot &lt;/em&gt;of folders with logging. Whenever problems arise, I check the folder &amp;quot;syslog&amp;quot; first&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span class="short_text" lang="en"&gt;&lt;span class="hps"&gt;the Eventlog - increase the loglevels in the sharepoint diagnostic logging to verbose for extensive logging&lt;/span&gt;&lt;/span&gt; 
&lt;ul&gt;
&lt;li&gt;&lt;span class="short_text" lang="en"&gt;&lt;span class="hps"&gt;Application log&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class="short_text" lang="en"&gt;&lt;span class="hps"&gt;Fast Search&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class="short_text" lang="en"&gt;&lt;span class="hps"&gt;Fast Search Farm&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span class="short_text" lang="en"&gt;&lt;span class="hps"&gt;SharePoint diagnostic logging - increase the log level to verbose&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class="short_text" lang="en"&gt;&lt;span class="hps"&gt;The IIS authentication logging&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class="short_text" lang="en"&gt;&lt;span class="hps"&gt;use nctrl status to check the status of your Fast installation&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;span class="short_text" lang="en"&gt;&lt;span class="hps"&gt;Some basic guidance:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span class="short_text" lang="en"&gt;&lt;span class="hps"&gt;Whenever no log errors appear on the Fast Search farm (event log as well as the \var\log), the problem lies within the SharePoint configuration&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class="short_text" lang="en"&gt;&lt;span class="hps"&gt;Whenever no errors appear on the Fast Search application, but errors do appear on the Fast IIS log, it&amp;#39;s most likely&amp;nbsp;a permission problem. My guess: database and/or &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class="short_text" lang="en"&gt;&lt;span class="hps"&gt;Whenever errors appear in Fast, you may not have SharePoint or permission problems, but a wrongly configured Fast environment. I didn&amp;#39;t write about these errors below, but hostname configurations appeared to&amp;nbsp;cause problems a lot.&lt;/span&gt;&lt;/span&gt;&lt;span class="short_text" lang="en"&gt;&lt;span class="hps"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;span class="short_text" lang="en"&gt;&lt;span class="hps"&gt;As seen in the diagram, there are several&amp;nbsp;junction points that can cause problems when not configured correctly:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;span class="short_text" lang="en"&gt;&lt;span class="hps"&gt;Crawling SharePoint content&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class="short_text" lang="en"&gt;&lt;span class="hps"&gt;Push&amp;nbsp;content into Fast&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class="short_text" lang="en"&gt;&lt;span class="hps"&gt;Communicatin with the Search Query and Settins Service&lt;/span&gt;&lt;/span&gt; &lt;/li&gt;
&lt;li&gt;&lt;span class="short_text" lang="en"&gt;&lt;span class="hps"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="short_text" lang="en"&gt;&lt;span class="hps"&gt;Accessing the admin service the&amp;nbsp;search query and site settings service&lt;/span&gt;&lt;/span&gt;&lt;span class="short_text" lang="en"&gt;&lt;span class="hps"&gt;&lt;/span&gt;&lt;/span&gt;&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Configure Fast via PowerShell &lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;I have seen problems on all of these levels and I will try to (shortly) describe the possible problems, their symptoms and (a link to) their solution. A small disclaimer is in place: this is by no means a full overview of possible problems, but it should help in troubleshooting whenever problems arise.&amp;nbsp;&lt;/p&gt;
&lt;h3&gt;1 -&amp;nbsp;&lt;span class="short_text" lang="en"&gt;&lt;span class="hps"&gt;Crawling SharePoint content (1)&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;&lt;span class="short_text" lang="en"&gt;&lt;span class="hps"&gt;One of the most common problems are the problems with crawling content. Make sure that your default content access account has read permissions on the sharepoint sites that need to be crawled. Normally, this is handled by SharePoint. Possible error message:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;span class="short_text" lang="en"&gt;&lt;span class="hps"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="short_text" lang="en"&gt;&lt;span class="hps"&gt;Access is denied. Verify that either the Default Content Access Accouont has access to this repository, or add a crawl rule to crawl this repository. If the repository being crawled is a SharePoint repository, verify that the account you are using has &amp;quot;Full Read&amp;quot; permissions on the SharePoint Web Application being crawled.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;&lt;span class="short_text" lang="en"&gt;&lt;span class="hps"&gt;2 - &lt;span class="short_text" lang="en"&gt;&lt;span class="hps"&gt;Push&amp;nbsp;content into Fast&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; (2)&lt;/h3&gt;
&lt;p&gt;After installing fast, pushing content into Fast can be a problem too. Several problems are possible here:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;-&amp;nbsp;SSL communication between the Fast Content Service and the Content Distributor is not configured correctly.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;Visit &lt;a href="http://technet.microsoft.com/en-us/library/ff381261.aspx#BKMK_Configure_ssl_enabled_communication"&gt;technet &lt;/a&gt;on how to configure SSL communication. Please make sure that the account used in &amp;quot;&lt;strong&gt;.\SecureFASTSearchConnector.ps1 &amp;ndash;certPath &amp;quot;path of the certificate\certificatename.pfx&amp;quot; &amp;ndash;ssaName &amp;quot;name of your content SSA&amp;quot; &amp;ndash;username &amp;ldquo;domain\username&amp;rdquo; &lt;/strong&gt;is the account that runs the osearch14. In the Administration &lt;em&gt;Services&lt;/em&gt; window this service is called &amp;quot;&lt;em&gt;SharePoint Server Search 14&lt;/em&gt;&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;strong&gt;-&amp;nbsp;Permissions&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;After checking the Fast Content Service installation with &amp;quot;docpush -csp c:\testfile.txt&amp;quot; several errors can appear:&lt;/p&gt;
&lt;p&gt;&lt;em&gt;sp Reported error with &lt;/em&gt;&lt;a href="http://cohowinery.com/c:/temp/bob.txt"&gt;&lt;span style="color:#0066dd;"&gt;&lt;em&gt;http://cohowinery.com/c:\temp\bob.txt&lt;/em&gt;&lt;/span&gt;&lt;/a&gt;&lt;em&gt;: processing:N/A:ProcessorDeploymentException: For pipeline &amp;#39;Office14 (webcluster)&amp;#39;, creating processor CompanyExtractorInclusionAny failed: ConfigurationError: CompanyExtractorInclusionAny: Failed to access or parse configuration file &amp;#39;etc/resources/matching/configuration.companyextractor.inclusion.any.xml&amp;#39;. &lt;/em&gt;&lt;/p&gt;
&lt;p&gt;This error can have several causes. Most likely is that the user doesn&amp;#39;t have isn&amp;#39;t member of the FastSearchAdministrators group. Another case I have encountered was that the account was member of that group, but for some reason did not have read access to the directory. Changing permissions fixed this issue for me, &lt;em&gt;but this not recommended to do on a production server!! &lt;/em&gt;The message about &lt;a href="http://cohowinery.com/"&gt;http://cohowinery.com/&lt;/a&gt; is not misconfigured on your system! It&amp;#39;s a&amp;nbsp;fictional company, same like the more known virtual companies contoso and wingtip toys&lt;/p&gt;
&lt;p&gt;&lt;span class="short_text" lang="en"&gt;&lt;span class="hps"&gt;- &lt;strong&gt;&lt;em&gt;I see dead crawlers&lt;/em&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span class="short_text" lang="en"&gt;&lt;span class="hps"&gt;Another issue that can arise when Fast is installed on the same server as your SharePoint installation (not recommended, only for dev purposes!!), is that the enterprise crawler died for some reason. This can be checked with nctrl status. I described the cause and the solution &lt;a href="http://bloggingabout.net/blogs/bas/archive/2011/05/19/fast-for-sharepoint-2010-enterprise-crawler-is-not-working.aspx"&gt;here&lt;/a&gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h3&gt;&lt;span class="short_text" lang="en"&gt;&lt;span class="hps"&gt;3 - Communication with the Search Query and Settings Service (3)&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;&lt;span class="short_text" lang="en"&gt;&lt;span class="hps"&gt;Accessing Fast from your SiteCollection can cause several problems:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span class="short_text" lang="en"&gt;&lt;span class="hps"&gt;&lt;strong&gt;&lt;em&gt;- No search results are returned&lt;/em&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span class="short_text" lang="en"&gt;&lt;span class="hps"&gt;When a query is executed and no results are returned, the most likely issue is a permission issue: the account that you logged in with, doesn&amp;#39;t have any permissions to view the indexed content. As the returned results are security trimmed by the query service, it&amp;#39;s possible that the returned set contains 0 items. This happened to me when I created an anonymous Fast Search Center, whereas all my other indexed site collections weren&amp;#39;t anonymously accessible. Another issue can be that (and this happens a lot after a fresh dev-installation!) the test site that is indexed, has content that hasn&amp;#39;t been published yet. That content isn&amp;#39;t indexed and thus, not returned.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span class="short_text" lang="en"&gt;&lt;span class="hps"&gt;&lt;strong&gt;&lt;em&gt;- Internal Server error exception (when querying)&lt;/em&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span class="short_text" lang="en"&gt;&lt;span class="hps"&gt;The application pool of the Search Query and settings service is not running. Check your IIS Manager to make sure that your application pool is up and that your website is running. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span class="short_text" lang="en"&gt;&lt;span class="hps"&gt;&lt;em&gt;&lt;strong&gt;- &lt;span id="ctl00_PlaceHolderMain_LabelMessage"&gt;Unexpected error occurred while communicating with Administration Service&lt;/span&gt;&lt;/strong&gt;&lt;/em&gt; &lt;strong&gt;&lt;em&gt;when&amp;nbsp;accessing one of the following site settings menu entries&lt;/em&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span class="short_text" lang="en"&gt;&lt;span class="hps"&gt;visual best bets&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class="short_text" lang="en"&gt;&lt;span class="hps"&gt;context information&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;span class="short_text" lang="en"&gt;&lt;span class="hps"&gt;promotion/demotion (ranking)&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;span class="short_text" lang="en"&gt;&lt;span class="hps"&gt;When this happens, please check the problems mentioned in paragraph&amp;nbsp;5 and 6 &amp;nbsp;too. As these functions communicate with the Fast Administration service, it&amp;#39;s likely that these problems occur, while the query component works fine. It&amp;#39;s most likely a permissions issue, where the Search Query and settings service (mentioned in paragraph 5), doesn&amp;#39;t have the right administration account configured.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h3&gt;&lt;span class="short_text" lang="en"&gt;&lt;span class="hps"&gt;4&amp;nbsp;- &lt;/span&gt;&lt;/span&gt;&lt;span class="short_text" lang="en"&gt;&lt;span class="hps"&gt;Accessing the admin service through the&amp;nbsp;search query and site settings service&lt;/span&gt;&lt;/span&gt;&lt;span class="short_text" lang="en"&gt;&lt;span class="hps"&gt;&lt;/span&gt;&lt;/span&gt;&amp;nbsp;(5)&lt;/h3&gt;
&lt;p&gt;&lt;span class="short_text" lang="en"&gt;&lt;span class="hps"&gt;&lt;/span&gt;&lt;/span&gt;&lt;strong&gt;&lt;em&gt;-&amp;nbsp;&lt;span id="ctl00_PlaceHolderMain_LabelMessage"&gt;Unexpected error occurred while communicating with Administration Service&lt;/span&gt; &lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;This error mainly has&amp;nbsp;3 rootcauses:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The Fast Administration services is not configured correctly (e.g. the wrong location is configured in the Fast Query service application)&lt;/li&gt;
&lt;li&gt;The Fast Administration application pool is not running&lt;/li&gt;
&lt;li&gt;Permissions ;). Make sure that that the right Fast Admin account is configured in the Fast Query service application.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;5&amp;nbsp;- Fast via PowerShell (7)&lt;/h2&gt;
&lt;p&gt;Powershell can show some initial &amp;quot;weird&amp;quot; behaviour. Whenever the Fast WCF-services aren&amp;#39;t running, all of the powershell commands will bug out with an error message. Get-FastSearchContentCollection returns: &lt;/p&gt;
&lt;p&gt;&lt;em&gt;Get-FastSearchContentCollection : Failed to communicate with the WCF service.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Whenever the services are back up, this message will disappear and the right output is returned. But sometimes some Powershell commands do work, and some won&amp;#39;t. This is definately a permissions issue, where the executing account isn&amp;#39;t member of the FastSearchAdministrators group. It&amp;#39;s comparable to the missing/wrong permissions for the fast query service application.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://bloggingabout.net/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/bas/6012.Fast_2D00_Powershell.png"&gt;&lt;img src="http://bloggingabout.net/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/bas/6012.Fast_2D00_Powershell.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3&gt;&lt;span class="short_text" lang="en"&gt;&lt;span class="hps"&gt;&lt;/span&gt;&lt;/span&gt;Summary&lt;/h3&gt;
&lt;p&gt;The majority of problems arise whenever permissions are not set correctly. It&amp;#39;s&amp;nbsp;important that the Fast Admin account&amp;nbsp;that is configured in the Fast Query Service, is indeed the &lt;em&gt;right&lt;/em&gt;&amp;nbsp;account, is member of the FastSearchAdministrators group and&amp;nbsp;has access the the FastAdmin database. For dev-purposes you can choose the make use of just one main account to run fast, run the app pools and use as the admin account, but this is no recommended approach for production environments. That is why I advise to always use least privilege installations, even on your dev-environments!&lt;/p&gt;</description></item><item><title>SharePoint 2010 - Fast Search Center site template not available (bug?!)</title><link>http://bloggingabout.net/blogs/bas/archive/2011/07/27/sharepoint-2010-fast-search-center-site-template-not-available-bug.aspx</link><pubDate>Wed, 27 Jul 2011 10:08:00 GMT</pubDate><guid isPermaLink="false">813b6dfd-644e-4573-a816-eebab56ba0d0:530920</guid><dc:creator>Bas</dc:creator><description>&lt;p class="MsoNormal"&gt;&lt;span lang="EN-US" style="mso-ansi-language:EN-US;"&gt;&lt;span style="font-family:Calibri;"&gt;&lt;span style="font-size:small;"&gt;Recently I found out that, my Fast Search Center was not available from the &amp;ldquo;New Site&amp;rdquo; menu. Both the english as well the dutch fast search template was not available.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span lang="EN-US" style="mso-ansi-language:EN-US;"&gt;&lt;span style="font-family:Calibri;"&gt;&lt;span style="font-size:small;"&gt;&lt;a href="http://bloggingabout.net/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/bas/8875.fastsitetemplate-not-available.png"&gt;&lt;img src="http://bloggingabout.net/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/bas/8875.fastsitetemplate-not-available.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span lang="EN-US" style="mso-ansi-language:EN-US;"&gt;&lt;span style="font-family:Calibri;font-size:small;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span lang="EN-US" style="mso-ansi-language:EN-US;"&gt;&lt;span style="font-family:Calibri;font-size:small;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span lang="EN-US" style="mso-ansi-language:EN-US;"&gt;&lt;span style="font-family:Calibri;"&gt;&lt;span style="font-size:small;"&gt;&amp;nbsp;As I saw this happen before, I checked out the site collection features overview, to enable the &amp;ldquo;SharePoint Server Enterprise Site Collection features&amp;rdquo;. I had to scratch my head twice when I saw that that feature was already activated: that feature should add fast search center templates to the available templates. Next thing I did was navigate to the &amp;ldquo;Page Layout and Site Template settings&amp;rdquo;, to make sure that the Fast Search Center template was available for creating sub-sites. To my surprise, the template was available! Still, I couldn&amp;rsquo;t select that template when creating a new site.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span lang="EN-US" style="mso-ansi-language:EN-US;"&gt;&lt;span style="font-family:Calibri;"&gt;&lt;span style="font-size:small;"&gt;&lt;a href="http://bloggingabout.net/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/bas/5657.FastSearchTemplate.png"&gt;&lt;img src="http://bloggingabout.net/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/bas/5657.FastSearchTemplate.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span lang="EN-US" style="mso-ansi-language:EN-US;"&gt;&lt;span style="font-family:Calibri;"&gt;&lt;span style="font-size:small;"&gt;I remembered that there is a hidden sitecollection feature (search extensions) that needs to be enabled to make use of the Fast specific features like visual best bets and that enables the administration links to visual best bets, user contexts and site promotion/demotion. After activating that feature, the Fast Search center template became&lt;i style="mso-bidi-font-style:normal;"&gt; &lt;/i&gt;available.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span lang="EN-US" style="mso-ansi-language:EN-US;"&gt;&lt;span style="font-family:Calibri;"&gt;&lt;span style="font-size:small;"&gt;&lt;a href="http://bloggingabout.net/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/bas/6153.fast_2D00_template_2D00_available.png"&gt;&lt;img src="http://bloggingabout.net/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/bas/6153.fast_2D00_template_2D00_available.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span lang="EN-US" style="mso-ansi-language:EN-US;"&gt;&lt;span style="font-family:Calibri;"&gt;&lt;span style="font-size:small;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span lang="EN-US" style="mso-ansi-language:EN-US;"&gt;&lt;span style="font-family:Calibri;"&gt;&lt;span style="font-size:small;"&gt;&amp;nbsp;This is strange, because when checking that feature.xml, we learn the following:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre style="font-family:Consolas;background:white;color:black;font-size:13px;"&gt;&lt;span style="color:blue;"&gt;&amp;lt;?&lt;/span&gt;&lt;span style="color:#a31515;"&gt;xml&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color:red;"&gt;version&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;1.0&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color:red;"&gt;encoding&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;utf-8&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;&amp;nbsp;?&amp;gt;&lt;/span&gt;
&lt;span style="color:blue;"&gt;&amp;lt;!--&lt;/span&gt;&lt;span style="color:green;"&gt;&amp;nbsp;Copyright&amp;nbsp;(c)&amp;nbsp;Microsoft&amp;nbsp;Corporation.&amp;nbsp;All&amp;nbsp;rights&amp;nbsp;reserved.&amp;nbsp;&lt;/span&gt;&lt;span style="color:blue;"&gt;--&amp;gt;&lt;/span&gt;
&lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Feature&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color:red;"&gt;Id&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;5EAC763D-FBF5-4d6f-A76B-EDED7DD7B0A5&lt;/span&gt;&amp;quot;
&lt;span style="color:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color:red;"&gt;Title&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;$Resources:SearchExtensionsFeatureTitle;&lt;/span&gt;&amp;quot;
&lt;span style="color:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color:red;"&gt;Description&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;$Resources:SearchExtensionsFeatureDescription;&lt;/span&gt;&amp;quot;
&lt;span style="color:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color:red;"&gt;DefaultResourceFile&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;Microsoft.Office.Server.Search&lt;/span&gt;&amp;quot;
&lt;span style="color:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color:red;"&gt;SolutionId&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;7ED6CD55-B479-4EB7-A529-E99A24C10BD3&lt;/span&gt;&amp;quot;
&lt;span style="color:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color:red;"&gt;Version&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;14.0.0.0&lt;/span&gt;&amp;quot;
&lt;span style="color:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color:red;"&gt;Scope&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;Site&lt;/span&gt;&amp;quot;
&lt;span style="color:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color:red;"&gt;Hidden&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;TRUE&lt;/span&gt;&amp;quot;
&lt;span style="color:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color:red;"&gt;xmlns&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;http://schemas.microsoft.com/sharepoint/&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;
&lt;span style="color:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ElementManifests&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;
&lt;span style="color:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ElementManifest&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color:red;"&gt;Location&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;webPartDWPFiles.xml&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;/&amp;gt;&lt;/span&gt;
&lt;span style="color:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ElementManifest&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color:red;"&gt;Location&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;ExtendedSearchAdminLinks.xml&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;/&amp;gt;&lt;/span&gt;
&lt;span style="color:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ElementManifests&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;
&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Feature&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;&lt;span lang="EN-US" style="mso-ansi-language:EN-US;"&gt;&lt;span style="font-family:Calibri;"&gt;&lt;span style="font-size:small;"&gt;


&lt;pre&gt;&lt;/pre&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;span lang="EN-US" style="mso-ansi-language:EN-US;"&gt;&lt;span style="font-family:Calibri;"&gt;&lt;span style="font-size:small;"&gt;There is no feature receiver&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;span lang="EN-US" style="mso-ansi-language:EN-US;"&gt;&lt;span style="font-family:Calibri;"&gt;&lt;span style="font-size:small;"&gt;&lt;span lang="EN-US" style="mso-ansi-language:EN-US;"&gt;&lt;span style="font-family:Calibri;"&gt;&lt;span style="font-size:small;"&gt;There is no feature dependency&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;span lang="EN-US" style="mso-ansi-language:EN-US;"&gt;&lt;span style="font-family:Calibri;"&gt;&lt;span style="font-size:small;"&gt;&lt;span lang="EN-US" style="mso-ansi-language:EN-US;"&gt;&lt;span style="font-family:Calibri;"&gt;&lt;span style="font-size:small;"&gt;&lt;span lang="EN-US" style="mso-ansi-language:EN-US;"&gt;&lt;span style="font-family:Calibri;"&gt;&lt;span style="font-size:small;"&gt;The feature only&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;span lang="EN-US" style="mso-ansi-language:EN-US;"&gt;&lt;span style="font-family:Calibri;"&gt;&lt;span style="font-size:small;"&gt;&lt;span lang="EN-US" style="mso-ansi-language:EN-US;"&gt;&lt;span style="font-family:Calibri;"&gt;&lt;span style="font-size:small;"&gt;&lt;span lang="EN-US" style="mso-ansi-language:EN-US;"&gt;&lt;span style="font-family:Calibri;"&gt;&lt;span style="font-size:small;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-fareast-font-family:&amp;#39;Courier New&amp;#39;;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;span style="font:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&lt;span lang="EN-US" style="mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:Calibri;"&gt;A&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="mso-ansi-language:EN-US;"&gt;&lt;span style="font-family:Calibri;"&gt;&lt;span style="font-size:small;"&gt;dds a webpart (webpartdwpfiles.xml)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;span lang="EN-US" style="mso-ansi-language:EN-US;"&gt;&lt;span style="font-family:Calibri;"&gt;&lt;span style="font-size:small;"&gt;&lt;span lang="EN-US" style="mso-ansi-language:EN-US;"&gt;&lt;span style="font-family:Calibri;"&gt;&lt;span style="font-size:small;"&gt;
&lt;p class="MsoListParagraphCxSpLast"&gt;&lt;span lang="EN-US" style="mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:Calibri;"&gt;Adds Search admin links (ExtendedSearchAdminLinks.xml)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p class="MsoNormal"&gt;&lt;span lang="EN-US" style="mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:Calibri;"&gt;For some reason this only happened for &lt;em&gt;existing &lt;/em&gt;site collections. That made me think about some recent changes to the platform:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;span lang="EN-US" style="mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:Calibri;"&gt;SP1 was installed&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;span lang="EN-US" style="mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:Calibri;"&gt;SP1 for language packs was installed&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;span lang="EN-US" style="mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:Calibri;"&gt;CU June was installed.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p class="MsoNormal"&gt;&lt;span lang="EN-US" style="mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:Calibri;"&gt;&lt;span lang="EN-US" style="mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:Calibri;"&gt;When deactivating the hidden feature (Search Extensions), the english template was gone again, whereas the dutch search template still existed. I definately this needs some further investigation. &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span lang="EN-US" style="mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:Calibri;"&gt;As it only happened for the sites that existed &lt;em&gt;before&lt;/em&gt; that change, my guess it has to do with a combination of those updates. For new sites, everything works as intended. My &lt;em&gt;guess&lt;/em&gt; is that it has to do with the combination of installed/registred language packs and the activation/deactivation of the search extension feature, which provides a default language resource named &amp;quot;Microsoft.Office.Server.Search&amp;quot;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:Calibri;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;</description></item><item><title>Fast Search for SharePoint gotcha  - query suggestions</title><link>http://bloggingabout.net/blogs/bas/archive/2011/07/19/fast-search-for-sharepoint-gotcha-query-suggestions.aspx</link><pubDate>Tue, 19 Jul 2011 10:07:00 GMT</pubDate><guid isPermaLink="false">813b6dfd-644e-4573-a816-eebab56ba0d0:522169</guid><dc:creator>Bas</dc:creator><description>&lt;p&gt;At the company i work for, we do have around 30(?!) different labels and we decided that all websites of those labels, should be hosted on one platform: SharePoint 2010. This consolidation to one platform should really decrease costs, because we now have one generic way of developing, one platform to take care of and we can reuse a lot of components.&amp;nbsp; One of the service applications that we wanted to reuse amongst all applications, is the Fast Query Service Application, as we have a Fast instance running.&amp;nbsp; Our labels are really enthousiast about the Fast Search for SharePoint capabilities due to fact that a lot of interesting features, like visual best bets, can be configured from within the UI. Other things, like new ranking models can easily be configured via powershell. There is just one index, with all public information in it: personal details or things like that, will not be indexed! By configuring scopes in a correct way, we can prevent information from label 1 to appear in the search results on label 2. If, for some reason, those results appeared by accident (wrongly configured scope), that wouldn&amp;#39;t be too much of a problem, as that can be fixed real soon.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;The gotcha ;)&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Query suggestions is one of the features that can be manually configured by registering new resourcephrases from within powershell, but it is self-learing too, based on query terms and click-throughs. Sadly enough, this is service application specific. But what does this mean?&lt;/p&gt;
&lt;p&gt;Now the following case:&amp;nbsp;We have&amp;nbsp;two labels &amp;quot;Centraal Beheer&amp;quot; and &amp;quot;Interpolis&amp;quot;, who are offering the same, competitive&amp;nbsp;products. Imagine that Interpolis demanded us to add a query suggestion for the word &amp;quot;Interpolis&amp;quot;. That could easily be added by executing the following powershell:&lt;span style="font-family:Courier New;color:#800080;font-size:x-small;"&gt;&lt;span style="font-family:Courier New;color:#800080;font-size:x-small;"&gt;&lt;span style="font-family:Courier New;color:#800080;font-size:x-small;"&gt;&lt;span style="font-family:Courier New;color:#800080;font-size:x-small;"&gt;&lt;span style="font-family:Courier New;color:#800080;font-size:x-small;"&gt;&lt;span style="font-family:Courier New;color:#800080;font-size:x-small;"&gt; &lt;span style="font-family:Courier New;color:#800080;font-size:x-small;"&gt;&lt;span style="font-family:Courier New;color:#800080;font-size:x-small;"&gt;&lt;span style="font-family:Courier New;color:#800080;font-size:x-small;"&gt;&lt;font face="Courier New" size="2" color="#800080"&gt;&lt;font face="Courier New" size="2" color="#800080"&gt;&lt;font face="Courier New" size="2" color="#800080"&gt;
&lt;p&gt;$queryapp &lt;/p&gt;
&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Courier New;color:#800080;font-size:x-small;"&gt;&lt;span style="font-family:Courier New;color:#800080;font-size:x-small;"&gt;&lt;span style="font-family:Courier New;color:#800080;font-size:x-small;"&gt;&lt;font face="Courier New" size="2" color="#800080"&gt;&lt;font face="Courier New" size="2" color="#800080"&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Courier New;color:#800080;font-size:x-small;"&gt;&lt;span style="font-family:Courier New;color:#800080;font-size:x-small;"&gt;&lt;span style="font-family:Courier New;color:#800080;font-size:x-small;"&gt;&lt;font face="Courier New" size="2" color="#800080"&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Courier New;color:#ff0000;font-size:x-small;"&gt;&lt;span style="font-family:Courier New;color:#ff0000;font-size:x-small;"&gt;&lt;span style="font-family:Courier New;color:#ff0000;font-size:x-small;"&gt;=&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Courier New;font-size:x-small;"&gt;&lt;span style="font-family:Courier New;font-size:x-small;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span style="font-family:Courier New;color:#5f9ea0;font-size:x-small;"&gt;&lt;span style="font-family:Courier New;color:#5f9ea0;font-size:x-small;"&gt;&lt;span style="font-family:Courier New;color:#5f9ea0;font-size:x-small;"&gt;Get-SPEnterpriseSearchServiceApplication&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family:Courier New;font-size:x-small;"&gt;&lt;span style="font-family:Courier New;font-size:x-small;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Courier New;color:#800000;font-size:x-small;"&gt;&lt;span style="font-family:Courier New;color:#800000;font-size:x-small;"&gt;&lt;span style="font-family:Courier New;color:#800000;font-size:x-small;"&gt;&amp;#39;FastQuery&amp;#39;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span style="font-family:Courier New;color:#5f9ea0;font-size:x-small;"&gt;&lt;span style="font-family:Courier New;color:#5f9ea0;font-size:x-small;"&gt;&lt;span style="font-family:Courier New;color:#5f9ea0;font-size:x-small;"&gt;New-SPEnterpriseSearchLanguageResourcePhrase&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family:Courier New;font-size:x-small;"&gt;&lt;span style="font-family:Courier New;font-size:x-small;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;i&gt;&lt;span style="font-family:Courier New;color:#5f9ea0;font-size:x-small;"&gt;&lt;span style="font-family:Courier New;color:#5f9ea0;font-size:x-small;"&gt;&lt;span style="font-family:Courier New;color:#5f9ea0;font-size:x-small;"&gt;-Language&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;span style="font-family:Courier New;font-size:x-small;"&gt;&lt;span style="font-family:Courier New;font-size:x-small;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Courier New;color:#800000;font-size:x-small;"&gt;&lt;span style="font-family:Courier New;color:#800000;font-size:x-small;"&gt;&lt;span style="font-family:Courier New;color:#800000;font-size:x-small;"&gt;en-us&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Courier New;font-size:x-small;"&gt;&lt;span style="font-family:Courier New;font-size:x-small;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;i&gt;&lt;span style="font-family:Courier New;color:#5f9ea0;font-size:x-small;"&gt;&lt;span style="font-family:Courier New;color:#5f9ea0;font-size:x-small;"&gt;&lt;span style="font-family:Courier New;color:#5f9ea0;font-size:x-small;"&gt;-Type&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;span style="font-family:Courier New;font-size:x-small;"&gt;&lt;span style="font-family:Courier New;font-size:x-small;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Courier New;color:#800000;font-size:x-small;"&gt;&lt;span style="font-family:Courier New;color:#800000;font-size:x-small;"&gt;&lt;span style="font-family:Courier New;color:#800000;font-size:x-small;"&gt;QuerySuggestionAlwaysSuggest&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Courier New;font-size:x-small;"&gt;&lt;span style="font-family:Courier New;font-size:x-small;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;i&gt;&lt;span style="font-family:Courier New;color:#5f9ea0;font-size:x-small;"&gt;&lt;span style="font-family:Courier New;color:#5f9ea0;font-size:x-small;"&gt;&lt;span style="font-family:Courier New;color:#5f9ea0;font-size:x-small;"&gt;-SearchApplication&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;span style="font-family:Courier New;font-size:x-small;"&gt;&lt;span style="font-family:Courier New;font-size:x-small;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Courier New;color:#800080;font-size:x-small;"&gt;&lt;span style="font-family:Courier New;color:#800080;font-size:x-small;"&gt;&lt;span style="font-family:Courier New;color:#800080;font-size:x-small;"&gt;$queryapp&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Courier New;font-size:x-small;"&gt;&lt;span style="font-family:Courier New;font-size:x-small;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;i&gt;&lt;span style="font-family:Courier New;color:#5f9ea0;font-size:x-small;"&gt;&lt;span style="font-family:Courier New;color:#5f9ea0;font-size:x-small;"&gt;&lt;span style="font-family:Courier New;color:#5f9ea0;font-size:x-small;"&gt;-Name&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;span style="font-family:Courier New;font-size:x-small;"&gt;&lt;span style="font-family:Courier New;font-size:x-small;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Courier New;color:#800000;font-size:x-small;"&gt;&lt;span style="font-family:Courier New;color:#800000;font-size:x-small;"&gt;&lt;span style="font-family:Courier New;color:#800000;font-size:x-small;"&gt;&amp;quot;Interpolis Verzekeringen&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;As this query suggestion is added to the service application itself, and not scoped to a custom scope, webapplication or site collection, every web application that consumes this Search Query Application, will suggest the word interpolis. For competitive labels, this will be a major issue! Features as user contexts (till a certain spot) and keywords can be scoped on site-collection scope, suggestions not :(&lt;br /&gt;Imagine that the suggestion &amp;quot;Interpolis Verzekeringen&amp;quot; pops up when searching for &amp;quot;Intake Insurance&amp;quot; on the competitive site of &amp;quot;Centraal Beheer&amp;quot;? I wouldn&amp;#39;t be too happy if I was a business owner of &amp;quot;Centraal Beheer&amp;quot;.&lt;br /&gt;&lt;br /&gt;Luckily, this &lt;em&gt;can &lt;/em&gt;be solved by adding a second search service application, but if that&amp;#39;s the way to go: I don&amp;#39;t know. A second search service application can be used, but requires 3&amp;nbsp; extra databases to be created:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Crawlstore_DB&lt;/li&gt;
&lt;li&gt;Query_DB&lt;/li&gt;
&lt;li&gt;PropertyStore_DB&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For smaller organisations, this shouldn&amp;#39;t be too much of a hassle, but in a large company, this can cost a lot of extra money, due to (but not limited to) SLA&amp;#39;s, extra administring of databases, storage and&amp;nbsp;backup. And maybe are two service applications easy to manage, but what about 30 service applications (one for each label?).I think that the same architecture that is used for keywords and usercontexts, should be used for the query suggestions. Suggestions would even be manageble on site collections, what would be an extra advantage for FAST.&lt;/p&gt;
&lt;p&gt;PS: this problem arises for SharePoint enterprise search as well ;)&lt;br /&gt;PS2: Who not using a multi tenant environment? Fast doesn&amp;#39;t support that &lt;em&gt;and &lt;/em&gt;we don&amp;#39;t need it ;)&lt;/p&gt;</description></item><item><title>Fast: Adding managed metadata properties for the use with scopes in SharePoint 2010</title><link>http://bloggingabout.net/blogs/bas/archive/2011/06/03/fast-adding-managed-metadata-properties-for-the-use-with-scopes-in-sharepoint-2010.aspx</link><pubDate>Fri, 03 Jun 2011 11:17:00 GMT</pubDate><guid isPermaLink="false">813b6dfd-644e-4573-a816-eebab56ba0d0:486836</guid><dc:creator>Bas</dc:creator><description>&lt;p&gt;Lately I was working on a project that required to make use of scopes and some managed metadata properties in those scopes. For some reason, those managed metadata properties didnt show up in my scope selection dropdownlist, but&amp;nbsp;I was sure that this metadata property was available in my Fast Managed Metadata properties list:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;a href="http://bloggingabout.net/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/bas/3362.fast_2D00_managed_2D00_metadata_2D00_1.png"&gt;&lt;img src="http://bloggingabout.net/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/bas/3362.fast_2D00_managed_2D00_metadata_2D00_1.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;as you can see, this property doesnt show up in my properties list:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://bloggingabout.net/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/bas/1537.fast_2D00_managed_2D00_metadata_2D00_2.png"&gt;&lt;img src="http://bloggingabout.net/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/bas/1537.fast_2D00_managed_2D00_metadata_2D00_2.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Whenever the SharePoint Search metadataproperties page is accessed, the option &amp;quot;Use in scopes&amp;quot; for the managed property ContentType&amp;nbsp;is turned off:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://bloggingabout.net/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/bas/5277.fast_2D00_managed_2D00_metadata_2D00_3.png"&gt;&lt;img src="http://bloggingabout.net/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/bas/5277.fast_2D00_managed_2D00_metadata_2D00_3.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;When this property is turned on, the property is available to be used in the scopes. &lt;a href="http://msdn.microsoft.com/en-us/library/ff453895.aspx#BKMK_MakeFASTPropertiesAvailableForUseInScopes"&gt;According to MSDN&lt;/a&gt;, this is working &amp;quot;as intended&amp;quot;. The managed properties that are created in the SharePoint search administration page, are just &lt;strong&gt;&lt;em&gt;placeholders&lt;/em&gt;&lt;/strong&gt; for the Fast managed metadata properties. The configuration of this managed property is, however, done in the Fast Managed metadata properties page.&lt;/p&gt;
&lt;p&gt;So, to be able to use managed properties in Fast Search scopes, the following steps need to be taken:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Add a Managed Metadata property via&amp;nbsp;the Fast Search Administration page and configure it&lt;/li&gt;
&lt;li&gt;Add a metadata property via the SharePoint search administration page (found on the Fast Query SSA) and make it available for the use in scopes. No other configurations need to be made.&lt;/li&gt;
&lt;li&gt;Now you&amp;#39;re ready to use your managed metadata property&lt;/li&gt;
&lt;/ol&gt;</description></item><item><title>Fast for SharePoint 2010 Enterprise Crawler is Dead</title><link>http://bloggingabout.net/blogs/bas/archive/2011/05/19/fast-for-sharepoint-2010-enterprise-crawler-is-not-working.aspx</link><pubDate>Thu, 19 May 2011 08:30:00 GMT</pubDate><guid isPermaLink="false">813b6dfd-644e-4573-a816-eebab56ba0d0:486714</guid><dc:creator>Bas</dc:creator><description>&lt;p&gt;Lately, I installed Fast locally on my machine for development purposes, and it was working as intended. Crawled&amp;nbsp;a lot of local (and external) content, but suddenly, my Enterprise crawler was not working. nctrl status showed me that the Enterprise crawler was Dead&lt;/p&gt;
&lt;p&gt;&lt;a href="http://bloggingabout.net/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/bas/2867.fast_5F00_nctrl_5F00_status.png"&gt;&lt;img src="http://bloggingabout.net/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/bas/2867.fast_5F00_nctrl_5F00_status.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;but &lt;em&gt;WHY &lt;/em&gt;it was dead? I had no idea at all! Checking the event logs only told me:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span lang="EN"&gt;M05020-DHEVMU98:13260: &lt;/span&gt;Process crawler was not running, restarting it&lt;/li&gt;
&lt;li&gt;&lt;span lang="EN"&gt;
&lt;p&gt;M05020-DHEVMU98:13260: Process crawler ports are already in use, will not start it&lt;/p&gt;
&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;span lang="EN"&gt;
&lt;p&gt;After checking the port 13260 on my machine, I concluded that there was nothing wrong with it. But that port, 13260 is the node controller, the enterprise crawler doesn&amp;#39;t use that port. After checking the hostsconfiguration.xml I concluded that I made a mistake: This file contains a property: baseport with value 13000. That day, I created a new SharePoint webapplication on port 13000. I always create new web applications at those ranges (10000, 11000, 12000), it&amp;#39;s a &lt;span class="short_text" lang="en" id="result_box"&gt;&lt;span title="Klik voor alternatieve vertalingen" class="hps"&gt;automatism of me. &lt;/span&gt;&lt;/span&gt;After deleting that web application, my Fast Enterprise crawler is up and running again! Too bad that the Fast Logging doesn&amp;#39;t include portnumbers in their errorlog when a port is already occupied .&lt;/p&gt;
&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;
&lt;p&gt;&lt;span lang="EN"&gt;
&lt;p&gt;Conclusion: never create a webapplication in the 13000 range when running Fast locally ;)&lt;/p&gt;
&lt;p&gt;&lt;span lang="EN"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/span&gt;&lt;/p&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;p&gt;&lt;span lang="EN"&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span lang="EN"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/span&gt;&lt;/p&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;/ul&gt;</description></item><item><title>My SharePoint 2010 &amp;amp; Fast session is online!</title><link>http://bloggingabout.net/blogs/bas/archive/2011/05/19/my-sharepoint-2010-amp-fast-session-is-online.aspx</link><pubDate>Thu, 19 May 2011 08:23:00 GMT</pubDate><guid isPermaLink="false">813b6dfd-644e-4573-a816-eebab56ba0d0:486713</guid><dc:creator>Bas</dc:creator><description>&lt;p&gt;On the Dutch Microsoft DevDays (or Techdays, as they&amp;nbsp;were called), I had a session about SharePoint 2010 and Fast. It was recorded and is now published on Channel 9. It&amp;#39;s pretty weird to see and hear yourself presenting. If you are interested in:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Fast Architecture&lt;/li&gt;
&lt;li&gt;Fast OOTB capabilities&lt;/li&gt;
&lt;li&gt;Fast configuration capabilities&lt;/li&gt;
&lt;li&gt;Ranking &amp;amp; Sorting&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;you should watch my session. For your information, it&amp;#39;s in Dutch.&lt;/p&gt;
&lt;p&gt;the presentation can be found at:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://channel9.msdn.com/Events/DevDays/DevDays-2011-Netherlands/Devdays119"&gt;http://channel9.msdn.com/Events/DevDays/DevDays-2011-Netherlands/Devdays119&lt;/a&gt;&lt;/p&gt;</description></item></channel></rss>