<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Search Nuggets &#187; Marcus Johansson</title>
	<atom:link href="http://blog.comperiosearch.com/blog/author/mjohansson/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.comperiosearch.com</link>
	<description>A blog about Search as THE solution</description>
	<lastBuildDate>Mon, 13 Jun 2016 08:59:45 +0000</lastBuildDate>
	<language>en-US</language>
		<sy:updatePeriod>hourly</sy:updatePeriod>
		<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=3.9.40</generator>
	<item>
		<title>SharePoint 2013 Search Features Availability Matrix</title>
		<link>http://blog.comperiosearch.com/blog/2013/04/18/sharepoint-2013-search-features-availability-matrix/</link>
		<comments>http://blog.comperiosearch.com/blog/2013/04/18/sharepoint-2013-search-features-availability-matrix/#comments</comments>
		<pubDate>Thu, 18 Apr 2013 07:48:46 +0000</pubDate>
		<dc:creator><![CDATA[Marcus Johansson]]></dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[SharePoint 2013]]></category>

		<guid isPermaLink="false">http://blog.comperiosearch.com/?p=1386</guid>
		<description><![CDATA[SharePoint 2013 has several deployment options and license models. Each combination comes with a unqiue feature set, so deciding which one to use can be challenging. This article discuss the feature set for Search, also available as a spreadsheet here: http://sdrv.ms/13k5u9f For quite some time, we didn&#8217;t know for sure which functionality was available for the [...]]]></description>
				<content:encoded><![CDATA[<p><strong>SharePoint 2013 has several deployment options and license models. Each combination comes with a unqiue feature set, so deciding which one to use can be challenging. This article discuss the feature set for Search, also available as a spreadsheet here: <a href="http://sdrv.ms/13k5u9f">http://sdrv.ms/13k5u9f</a></strong></p>
<p><span id="more-1386"></span></p>
<p>For quite some time, we didn&#8217;t know for sure which functionality was available for the different deployments and licenses. In January or so, an article surfaced on TechNet describing which features are available for the various <em>SharePoint Online</em> plans. But the on-premise perspective was still missing. Until a few weeks ago, when the very same Technet page was updated to also include information for on-premise solutions. Confusingly, the page is still called <a title="SharePoint Online Service Description" href="http://technet.microsoft.com/en-us/library/jj819267.aspx">SharePoint Online Service Description</a>.</p>
<p>In any case, what should you look out for from a Search perspective?</p>
<p><strong>How about the cloud?</strong></p>
<p>If you have small requirements on search, e.g. you only need to index whatever is stored in SharePoint and you&#8217;re happy with how most things are out of the box, then by all means investigate the various cloud plans. However, as they all lack the connector framework, you can&#8217;t index anything living outside of SharePoint. In addition, all cloud plans are weak on the content processing side. None of them can do custom entity extraction, i.e. using dictionaries to pull metadata out of unstructured text, and adding your own logic to content processing is off the table as well.</p>
<p>In other words, you&#8217;ll have trouble getting your content <em>into</em> the index, and there&#8217;s no possibility to <em>process</em> that content in order to enable a richer search experience. Still, if your search requirements are low, and all your important stuff already sits in SharePoint, this may not be a problem for you.</p>
<p>Additionally &#8211; and this is a huge bummer for many smaller organizations who&#8217;s planning to go with SharePoint Online &#8211; none of the cloud plans include the possibility to use the Content Search Web Part. This one you&#8217;ll really miss if you&#8217;re planning to build search-driven applications around your portal.</p>
<p>In other words, if you&#8217;re looking for more advanced search technology than the very basics, an on-premise solution is the way to go. No surprises here.</p>
<p><strong> On-premise solutions</strong></p>
<p>The only combination of deployment type and license model that gives you a 100% complete feature set is the on-premise Enterprise license. And if you&#8217;re looking to implement Enterprise Search in your organization, the choice is very simple. You need the Enterprise CAL.</p>
<p>Foundation is completely off the table for more advanced solutions, due to the missing connector framework. The Standard license is somewhat better, but just like the cloud offerings it&#8217;s very weak on the content processing side and there&#8217;s no tunable relevancy either. This may be alright for small shops with small requirements on search, but also keep in mind that you&#8217;re missing out on the Content Search Web Part and the more advanced feature sets of the Query Rule engine. If those two had been included, the Standard license would have been a lot more pleasing for many small organizations.</p>
<p>Here&#8217;s the link to the spreadsheet again <a href="http://sdrv.ms/13k5u9f">http://sdrv.ms/13k5u9f</a>, and it&#8217;s also available for your viewing pleasure right here on the blog. Feel free to hook me up on <a href="http://twitter.com/marcjoha">Twitter </a>or via the comment field below if you want to discuss the various deployments and licenses for SharePoint search!</p>
<p><iframe src="https://skydrive.live.com/embed?cid=189924B45AA0EF77&amp;resid=189924B45AA0EF77%211065&amp;authkey=AFJ4c33EV2wCBKM&amp;em=2&amp;wdAllowInteractivity=False&amp;ActiveCell='Sheet1'!A1&amp;wdHideGridlines=True&amp;wdHideHeaders=True&amp;wdDownloadButton=True" frameborder="0" scrolling="no" width="595" height="910"></iframe></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.comperiosearch.com/blog/2013/04/18/sharepoint-2013-search-features-availability-matrix/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Once upon a time, there was a company called FAST&#8230;</title>
		<link>http://blog.comperiosearch.com/blog/2013/04/01/once-upon-a-time-there-was-fast/</link>
		<comments>http://blog.comperiosearch.com/blog/2013/04/01/once-upon-a-time-there-was-fast/#comments</comments>
		<pubDate>Mon, 01 Apr 2013 21:55:20 +0000</pubDate>
		<dc:creator><![CDATA[Marcus Johansson]]></dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[ESP]]></category>
		<category><![CDATA[fast]]></category>
		<category><![CDATA[fs4sp]]></category>
		<category><![CDATA[SP2013]]></category>

		<guid isPermaLink="false">http://blog.comperiosearch.com/?p=1293</guid>
		<description><![CDATA[…that came out of nowhere, worked its way to the top, and then all of a sudden earlier this year disappeared for good. Time has come to say farewell. In my previous blog post, Examining the new search core in SharePoint 2013, I attached a presentation on Slideshare. The first few slides summarized FAST&#8217;s product [...]]]></description>
				<content:encoded><![CDATA[<p><strong>…that came out of nowhere, worked its way to the top, and then all of a sudden earlier this year disappeared for good. Time has come to say farewell.</strong></p>
<p><span id="more-1293"></span></p>
<p>In my previous blog post, <a href="http://blog.comperiosearch.com/blog/2013/03/06/examining-the-new-search-core-in-sharepoint-2013/">Examining the new search core in SharePoint 2013</a>, I attached a presentation on <a href="http://www.slideshare.net/comperio/axceler-webinar-feb2013-examining-the-new-search-core-in-sp2013">Slideshare</a>. The first few slides summarized FAST&#8217;s product history, both before and after it was acquired by Microsoft. I also boldly stated that we&#8217;re seeing the “End of an era, the birth of a new age”. As cheesy as it may sound, at least from a technology perspective, I find this to be very true.</p>
<p>FAST Search and Transfer, the Norwegian company that sprung from the university in Trondheim, was founded as early as 1997. That&#8217;s a staggering 16 years ago. Even 4 years before the initial release of SharePoint.</p>
<p>Although it&#8217;s debatable when FAST initially entered the Enterprise Search market, the first release of FAST Data Search (FDS) was certainly a milestone. Much later, Microsoft acquired FAST and snapped up its hugely successful successor, the Enterprise Search Platform (ESP). It was later turned into the products FSIA/FSIS and also served as the backbone for FAST Search Server 2010 for SharePoint (FS4SP).</p>
<p>One thing that strikes me when reminiscing about FAST, is how the technology stack can be traced throughout its history. Many of the internal FAST processes we saw in FS4SP were actually already introduced back in FDS (of course in varying shape and form). But like I said in my last blog post, the idea that “FAST is now fully integrated” in SharePoint 2013 is just… well, wrong. The “technology trace” is now gone.</p>
<p>The figure below outlines FAST&#8217;s product history. As you can see, FS4SP was a merge between the FAST and the SharePoint worlds. And it showed. A Microsoft technician, who shall remain unnamed, once referred to it as the “bastard child of the two paradigms”. Although a little harsh – FS4SP was arguably a great improvement to the search-deprived SharePoint world – there was certainly some truth to it.</p>
<p align="center"><a href="http://blog.comperiosearch.com/wp-content/uploads/2013/03/The-evolution-of-FAST.png"><img title="The evolution of FAST" src="http://blog.comperiosearch.com/wp-content/uploads/2013/03/The-evolution-of-FAST_thumb1.jpg" alt="The evolution of FAST" border="0" /></a></p>
<p>Eventually, with the arrival of SharePoint 2013, Microsoft released a well-tailored and cohesive search experience. But there was no longer an obvious technical inheritance from the earlier FAST product line, which is why SharePoint 2013 isn&#8217;t about having FAST “fully integrated”. It&#8217;s, simply put, a whole new platform. Of course with a few exceptions, e.g. some functionality from FSIS carried over to the new release. But generally speaking, we&#8217;re looking at a completely new platform, rewritten from the ground up.</p>
<p>In other words, the pre-MS technology is no longer around and the “technology trace” that we saw in earlier products is now cut off. Additionally, the “FAST” trademark has now slowly started the process of fading into obscurity.</p>
<p>All said and done, it&#8217;s only appropriate that FAST – the company, its technology and the trademark – is finally given a proper farewell. Without further ado, I give you its obituary: FAST, may you rest in peace, among friends in Enterprise Software heaven.</p>
<p align="center"><img title="FAST obituary" src="http://blog.comperiosearch.com/wp-content/uploads/2013/03/FAST-obituary.png" alt="FAST obituary" border="0" /></p>
<p align="left">(Sorry, just couldn&#8217;t help but to shamelessly plug Comperio&#8217;s consulting services <img src="http://blog.comperiosearch.com/wp-content/uploads/2013/03/smile3.gif" alt="" />)</p>
<div class="bjtags">Tags: <a href="http://technorati.com/tag/FAST" rel="tag">FAST</a>, <a href="http://technorati.com/tag/ESP" rel="tag">ESP</a>, <a href="http://technorati.com/tag/FS4SP" rel="tag">FS4SP</a>, <a href="http://technorati.com/tag/SP2013" rel="tag">SP2013</a></div>
]]></content:encoded>
			<wfw:commentRss>http://blog.comperiosearch.com/blog/2013/04/01/once-upon-a-time-there-was-fast/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Examining the new search core in SharePoint 2013</title>
		<link>http://blog.comperiosearch.com/blog/2013/03/06/examining-the-new-search-core-in-sharepoint-2013/</link>
		<comments>http://blog.comperiosearch.com/blog/2013/03/06/examining-the-new-search-core-in-sharepoint-2013/#comments</comments>
		<pubDate>Wed, 06 Mar 2013 00:26:35 +0000</pubDate>
		<dc:creator><![CDATA[Marcus Johansson]]></dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[SharePoint 2013]]></category>

		<guid isPermaLink="false">http://blog.comperiosearch.com/?p=1262</guid>
		<description><![CDATA[I&#8217;ve recently had the pleasure of presenting on SharePoint 2013&#8242;s new search functionality. First at The NY Enterprise Search User Group, kindly organized by Arcovis, then last week in a webinar with Axceler, and in between internally here at Comperio. While researching, talking about, and listening on what people say about search in SharePoint 2013, I&#8217;ve [...]]]></description>
				<content:encoded><![CDATA[<p>I&#8217;ve recently had the pleasure of presenting on SharePoint 2013&#8242;s new search functionality. First at <a title="The NY Enterprise Search User Group" href="http://www.meetup.com/EnterpriseSearch/events/100822682/">The NY Enterprise Search User Group</a>, kindly organized by <a href="http://arcovis.com/">Arcovis</a>, then last week in a webinar with <a href="http://www.axceler.com">Axceler</a>, and in between internally here at Comperio.</p>
<p>While researching, talking about, and listening on what people say about search in SharePoint 2013, I&#8217;ve noticed two major themes.</p>
<p><strong>The idea that &#8220;FAST is now fully integrated&#8221;</strong></p>
<p>&#8230;and while this is certainly true, it&#8217;s also not even close to the full story. Search in SharePoint 2013 is a completely new technology, unparalleled in the Microsoft world. The actual index is fundamentally different, boosting better performance by using in-memory technology and even being <a href="http://en.wikipedia.org/wiki/Atomicity_(database_systems)">atomic</a>!</p>
<p><strong>The excitement about the User Experience</strong></p>
<p>A few years back, FAST technology was sold and marketed by technical things like linear scaling, content processing power, and low search times. That&#8217;s light years away from what excites people about search in SharePoint 2013. Quite the contrary, the web is full of people buzzing about <em>the actual search experience</em>. How the default search center looks cleaner. How well document previews are integrated. That the addition of automatic search analytics makes relevance calculation&#8230; wait for it&#8230; self-learning! And so on.</p>
<p>I can&#8217;t help but think &#8212; actually I&#8217;m hoping &#8212; that this marks a shift in how people think about search: that it&#8217;s not defined by the internal technicalities, but the user experiences we can build on top of it.</p>
<p>And while UX is arguably one of the most important factors of a search solution, I&#8217;ll always have a weak spot for what&#8217;s actually going on under the hood. So if you&#8217;re like me, check out the presentation below!</p>
<p><iframe style="border: 1px solid #CCC; border-width: 1px 1px 0; margin-bottom: 5px;" src="http://www.slideshare.net/slideshow/embed_code/16914534" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" width="427" height="356"></iframe></p>
<div style="margin-bottom: 5px;"><strong> <a title="Examining the new search core in SharePoint 2013" href="http://www.slideshare.net/comperio/axceler-webinar-feb2013-examining-the-new-search-core-in-sp2013" target="_blank">Examining the new search core in SharePoint 2013</a> </strong> from <strong><a href="http://www.slideshare.net/comperio" target="_blank">Comperio &#8211; Search Matters.</a></strong></div>
]]></content:encoded>
			<wfw:commentRss>http://blog.comperiosearch.com/blog/2013/03/06/examining-the-new-search-core-in-sharepoint-2013/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SharePoint conference 2012 keynote: raising the bar for Enterprise Search</title>
		<link>http://blog.comperiosearch.com/blog/2012/11/26/sharepoint-conference-2012-keynote-raising-the-bar-for-enterprise-search/</link>
		<comments>http://blog.comperiosearch.com/blog/2012/11/26/sharepoint-conference-2012-keynote-raising-the-bar-for-enterprise-search/#comments</comments>
		<pubDate>Mon, 26 Nov 2012 20:42:16 +0000</pubDate>
		<dc:creator><![CDATA[Marcus Johansson]]></dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[enterprise search]]></category>
		<category><![CDATA[Enterprise Social]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[sharepoint]]></category>
		<category><![CDATA[spc]]></category>

		<guid isPermaLink="false">http://blog.comperiosearch.com/?p=1148</guid>
		<description><![CDATA[A little after 8:30 this morning, Jared Spataro, Senior Director of SharePoint, opened this year&#8217;s SharePoint Conference (SPC) to the sound of 10,000 SharePoint geeks simultaneously tapping away on their devices, furiously making #SPC12 the trending topic on Twitter. The release of SharePoint 2013 is touted by Microsoft as a bridge from the past to [...]]]></description>
				<content:encoded><![CDATA[<p>A little after 8:30 this morning, Jared Spataro, Senior Director of SharePoint, opened this year&#8217;s SharePoint Conference (SPC) to the sound of 10,000 SharePoint geeks simultaneously tapping away on their devices, furiously making #SPC12 the trending topic on Twitter.</p>
<p>The release of SharePoint 2013 is touted by Microsoft as a bridge from the past to the future; a pivotal shift from server- and wave-based releases to a rapid release cycle, combining the muscles from the cloud, fresh design principles and Enterprise Social technology. They&#8217;re proud, and they should be.</p>
<p><img class="alignnone size-full" src="http://blog.comperiosearch.com/wp-content/uploads/2012/11/20121112-123453.jpg" alt="20121112-123453.jpg" /></p>
<p>In the keynote, Microsoft also revealed some of the rationale behind the recent acquisition of Yammer, seeing how it complements SharePoint&#8217;s strong document-management skills with Yammer&#8217;s deep expertise in making the enterprise more social.</p>
<p>Jeff Teper, another high-profile SharePoint executive, told the crowds that over the last three years, Microsoft&#8217;s engineering team has centralized their effort around three important pillars: Experiences, Innovation and Ecosystem. This shows off in a dramatically improved user experience, better development tools and a completely revamped application model paving the way for us partner companies to more rapidly and with more flexibility deploy innovative applications in the cloud.</p>
<p>Another consistent theme throughout the keynote, was how Search now has a bigger role across SharePoint and throughout the Microsoft stack. FAST is now fully integrated, and the new search core drives both content and recommendations throughout the suite.</p>
<p>We now have a much better baseline when implementing Search technology in the enterprise. Hopefully this is finally the time when custom implementations of Enterprise Search will stop ending up as just a search box, and instead unleash the potential of Your organization&#8217;s accumulated knowledge and tackle today&#8217;s overwhelming growth of information.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.comperiosearch.com/blog/2012/11/26/sharepoint-conference-2012-keynote-raising-the-bar-for-enterprise-search/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>In Relevance We Trust</title>
		<link>http://blog.comperiosearch.com/blog/2012/11/21/in-relevance-we-trust/</link>
		<comments>http://blog.comperiosearch.com/blog/2012/11/21/in-relevance-we-trust/#comments</comments>
		<pubDate>Wed, 21 Nov 2012 00:32:37 +0000</pubDate>
		<dc:creator><![CDATA[Marcus Johansson]]></dc:creator>
				<category><![CDATA[User Experience]]></category>
		<category><![CDATA[design patterns]]></category>
		<category><![CDATA[sharepoint 2010]]></category>
		<category><![CDATA[SharePoint 2013]]></category>

		<guid isPermaLink="false">http://blog.comperiosearch.com/?p=1180</guid>
		<description><![CDATA[Relevance-based sorting has been the modus operandi for search solutions in the enterprise for quite a while. Even so, many search GUIs still provide alternate sorting based on static metadata. Are we now finally reaching a point where that fall-back is no longer needed? I think so. They say that everyone dies twice. First when you [...]]]></description>
				<content:encoded><![CDATA[<p><strong>Relevance-based sorting has been the <em>modus operandi</em> for search solutions in the enterprise for quite a while. Even so, many search GUIs still provide alternate sorting based on static metadata. Are we now finally reaching a point where that fall-back is no longer needed? I think so.</strong></p>
<p><span id="more-1180"></span></p>
<p>They say that everyone dies twice. First when you actually die, and then finally when your name is mentioned for the last time.</p>
<p>Back before online search revolutionized ranking algorithms, people sorted their search results by date, alphabetically or by any other static metadata. The concept of a relevance-based result set, where items are evaluated against your search terms at query-time, was rare. Now, we&#8217;ve gotten used to sorting things by relevance. A concept as easy to understand as it is hard to implement.</p>
<p>Rank models, i.e. the math behind calculating a metric for relevance, sparked an interest in me the moment I first heard of them. And ever since, every time someone wanted to sort a result set by the &#8220;old-fashioned way&#8221;, e.g. by date, I always cringed. But I swallowed my search geek-pride and moved on.</p>
<p>How search engines calculate relevance and rank is way out of the scope of this post, but because of my long-running loathing of non-relevance based sorting, I want to highlight a small but glorious thing in the new SharePoint 2013 search GUI, that may have bypassed even early adopters in the findability scene. My heart almost skipped a beat when I first noticed it at one of last week’s sessions at the <a title="Microsoft SharePoint conference" href="http://www.mssharepointconference.com">Microsoft SharePoint conference</a> in Las Vegas.</p>
<div id="attachment_1199" style="width: 183px" class="wp-caption alignright"><a href="http://blog.comperiosearch.com/wp-content/uploads/2012/11/sp2010sort1.png"><img class="size-full wp-image-1199" title="SharePoint 2010 search drop-down" src="http://blog.comperiosearch.com/wp-content/uploads/2012/11/sp2010sort1.png" alt="" width="173" height="82" /></a><p class="wp-caption-text">Alternate sorting in SharePoint 2010</p></div>
<p>In the search center in SharePoint 2010, both the one for Enterprise Search and FAST, the default was to sort by relevance. Great, but there was a drop down that allowed you to change over to sorting by date or, in the case of FAST, any other managed property which had been enabled for sorting. Even so, I&#8217;ve experienced time after time that the drop down was not used very often. Why? Probably because dates and many other metadata is several times better navigated using drill down facets, and this is something that comes natural to many end-users over time.</p>
<p>Of course there are exceptions and occasions when an alternate static sorting over a single metadata property makes sense, but for a good portion of search centers, I&#8217;m very convinced that the drop down adds little more than just some clutter to the GUI.</p>
<p>In the SharePoint 2013 search center, you can still sort by any property, of course. But the drop down in the default GUI is not there anymore. You’re encouraged to sort by relevance, and that&#8217;s it. There are two things to this:</p>
<div>
<ul>
<li>Firstly, the functionality to sort on a single static metadata property is still there behind the scenes, and very easy to expose to the user if it&#8217;s necessary in your solution.</li>
<li>Secondly, the engine driving the relevance calculation is much improved and it’s now easier than ever (in the SharePoint world) to tune your relevance model; allowing it to span over several metadata and dynamically evaluate search words against the index corpus.</li>
</ul>
<p>But not having that “sort by” drop down in the default GUI is a huge step.</p>
<div id="attachment_1194" style="width: 513px" class="wp-caption aligncenter"><a href="http://blog.comperiosearch.com/wp-content/uploads/2012/11/sp2013searchbox1.png"><img class="size-full wp-image-1194" title="SharePoint 2013 search box" src="http://blog.comperiosearch.com/wp-content/uploads/2012/11/sp2013searchbox1.png" alt="" width="503" height="81" /></a><p class="wp-caption-text">The search box in SharePoint 2013, no static sorting to be seen</p></div>
<p>This is not only about getting a cleaner GUI, but more importantly also about getting to a point where users have started to assume that sorting by relevance <em>just works</em>. Silently, but surely, search engines are maturing, and we&#8217;ve – equally silently – started to assume they work better and better.</p>
<p>My inner search geek has started to wonder that perhaps static sorting first died when the rules of online search changed with <a title="PageRank" href="http://en.wikipedia.org/wiki/PageRank">PageRank</a>, and people got accustomed to sorting by relevance. And with having that alternate sorting drop down removed from the default SharePoint 2013 GUI, perhaps this is the time when static sorting fades into obscurity – and dies the second time.</p>
<p>Dear static sorting, R.I.P.</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.comperiosearch.com/blog/2012/11/21/in-relevance-we-trust/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Best Bets &#8211; and nothing but the Best Bets!</title>
		<link>http://blog.comperiosearch.com/blog/2012/01/27/nothing-but-best-bets/</link>
		<comments>http://blog.comperiosearch.com/blog/2012/01/27/nothing-but-best-bets/#comments</comments>
		<pubDate>Fri, 27 Jan 2012 00:13:57 +0000</pubDate>
		<dc:creator><![CDATA[Marcus Johansson]]></dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[fastsearch]]></category>
		<category><![CDATA[fs4sp]]></category>

		<guid isPermaLink="false">http://nuggets.comperiosearch.com/?p=821</guid>
		<description><![CDATA[In FAST Search for SharePoint (FS4SP), Best Bets are result items that are added manually to the results of a search query. But unless you edit the web part, FS4SP will also show you the Keyword Definition along with the Best Bets. Or&#8230;? Let&#8217;s take it from the beginning. Using Best Bets, i.e. hard-wiring a [...]]]></description>
				<content:encoded><![CDATA[<p>In FAST Search for SharePoint (FS4SP), Best Bets are result items that are added manually to the results of a search query. But unless you edit the web part, FS4SP will also show you the Keyword Definition along with the Best Bets. Or&#8230;?</p>
<p><span id="more-821"></span>Let&#8217;s take it from the beginning. Using Best Bets, i.e. hard-wiring a certain result item to a particular search term, is a great way for Search Administrators to make sure end-users find what they’re looking for. Interestingly enough, there’s sometimes a slight contempt towards Best Bets in the technical community. Some people seem to think that the search solution’s relevance model should be able to stand on its own, and make sure the best results are always returned at the top of the results anyway.</p>
<p>But as a Search Administrator, if you could increase the perceived end-user experience <em>a lot</em> by a just <em>a little</em> manual (or semi-automatic) labor, wouldn’t you do it? Sure you would. One way of doing that is simply to look into the top X search queries in your query logs, and spend a few minutes on each search query and hard-wire a certain result item against it.</p>
<p>Anyway – we’re on the Technology section, so let’s get dirty.</p>
<p>In FS4SP, Best Bets are managed through the FAST Search Keywords page under Site Collection Administration. Adding a new one is easy: you start by creating a keyword, and then attach a Best Bet to it. Simple enough.</p>
<p>Let’s say you added the keyword “Comperio”, with the definition “Microsoft Search Partner of the Year 2011”. You then attached a Best Bet to it, linking to Comperio’s web site. With the minimal configuration, you’d end up with something like this:</p>
<p><a href="http://blog.comperiosearch.com/wp-content/uploads/2012/01/image.png"><img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border-width: 0px;" title="image" src="http://blog.comperiosearch.com/wp-content/uploads/2012/01/image_thumb.png" border="0" alt="image" width="390" height="210" /></a></p>
<p>Cool! You got yourself a Best Bet, and this is how they’re shown on the majority of FS4SP deployments out there. However, the Best Bet is not the only thing showing. The first star is showing the keyword itself, a long with its definition.</p>
<p>Let’s say you want to save some pixel real-estate, and decides that showing just the link is enough. At the Edit Keyword page, there’s no switch saying if to show the definition or not, but you can remove the text altogether from the text area shown below. That ought to do it!</p>
<p><a href="http://blog.comperiosearch.com/wp-content/uploads/2012/01/image1.png"><img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border-width: 0px;" title="image" src="http://blog.comperiosearch.com/wp-content/uploads/2012/01/image_thumb1.png" border="0" alt="image" width="390" height="191" /></a></p>
<p>Unfortunately, the result is not much better. We still get two stars, only now the keyword definition text is removed. The keyword itself is floating around by its own above the Best Bet – and not a single pixel was saved from vertical misery.</p>
<p><a href="http://blog.comperiosearch.com/wp-content/uploads/2012/01/image2.png"><img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border-width: 0px;" title="image" src="http://blog.comperiosearch.com/wp-content/uploads/2012/01/image_thumb2.png" border="0" alt="image" width="391" height="180" /></a></p>
<p>There’s no other setting on the FAST Search Keywords page to fix this – but there’s still a nice work-around. Enter PowerShell!</p>
<p>In an FS4SP shell, get hold of a Search Setting Group object corresponding to your Site Collection. If you only have one site collection, you can do:</p><pre class="crayon-plain-tag">$ssg = Get-FASTSearchSearchSettingGroup</pre><p>If you have more than one, and haven’t named the group manually, pass in the id of your site collection to the the cmdlet’s –Name parameter. Running the two lines below in a SharePoint Management shell will print the id:</p><pre class="crayon-plain-tag">$site = Get-SPSite -Identity &lt;a href=&quot;http://&amp;lt;site collection root&amp;gt;&quot;&gt;http://&amp;lt;site collection root&amp;gt;&lt;/a&gt;
$site.ID</pre><p>When you’ve got hold of the search setting group, you can use it to view all internal information about the keyword:</p><pre class="crayon-plain-tag">PS C:\FASTSearch\bin&amp;gt; $ssg.Keywords.GetKeyword(&quot;comperio&quot;)
Synonyms&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : {}
BestBets&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : {Comperio}
FeaturedContent : {}
Promotions&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : {}
Group&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : Microsoft.SharePoint.Search.Extended.Administration.WCFClient.SearchSettingGroupImplWCF
Definition&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : &amp;lt;DIV&amp;gt;&amp;amp;nbsp;&amp;lt;/DIV&amp;gt;
Term&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : comperio
LastChanged&nbsp;&nbsp;&nbsp;&nbsp; : 1/27/2012 12:36:57 AM
Id&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : 2</pre><p>Looking at the Definition property, you’ll notice that’s it not actually empty at all &#8211; even though you&#8217;ve clearly removed all text from the definition text area. It contains the HTML entity for a non-breaking space wrapped in a &lt;div&gt; tag! Turns out that if you use the GUI to clear the definition, this is literally as empty you can make it. Even on a brand new keyword, without even specifying a definition. Bug or feature? I don’t know. But now knowing what the problem is, you can easily fix it for yourself by running:</p>
<div>
<pre class="crayon-plain-tag">PS C:\FASTSearch\bin&amp;gt; $keyword = $ssg.Keywords.GetKeyword(&quot;comperio&quot;)
PS C:\FASTSearch\bin&amp;gt; $keyword.Definition = $null</pre><br />
And with no further a due, your Best Bet is finally standing strong – on its own!</p>
<p><a href="http://blog.comperiosearch.com/wp-content/uploads/2012/01/image3.png"><img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border-width: 0px;" title="image" src="http://blog.comperiosearch.com/wp-content/uploads/2012/01/image_thumb3.png" border="0" alt="image" width="389" height="140" /></a></p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.comperiosearch.com/blog/2012/01/27/nothing-but-best-bets/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>How FS4SP primary keys work</title>
		<link>http://blog.comperiosearch.com/blog/2011/12/18/fs4sp-primary-keys-work/</link>
		<comments>http://blog.comperiosearch.com/blog/2011/12/18/fs4sp-primary-keys-work/#comments</comments>
		<pubDate>Sun, 18 Dec 2011 12:03:22 +0000</pubDate>
		<dc:creator><![CDATA[Marcus Johansson]]></dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[fastsearch]]></category>
		<category><![CDATA[fs4sp]]></category>
		<category><![CDATA[sp2010]]></category>

		<guid isPermaLink="false">http://nuggets.comperiosearch.com/?p=733</guid>
		<description><![CDATA[Just like in most systems that contains data, each indexed content item in FAST Search for SharePoint (FS4SP) is associated with a certain primary key. No surprises here – in order to update or remove an item from the index, the system must be able to uniquely identify it. For the most part, Microsoft has [...]]]></description>
				<content:encoded><![CDATA[<p>Just like in most systems that contains data, each indexed content item in FAST Search for SharePoint (FS4SP) is associated with a certain primary key. No surprises here – in order to update or remove an item from the index, the system must be able to uniquely identify it.</p>
<p>For the most part, Microsoft has done a great job integrating FAST into the SharePoint world, but there are certainly some areas where you notice there are actually two paradigms behind the scene: how things work in SharePoint, and how things (used to) work in FAST.</p>
<p>The primary key of the FS4SP index is one of those areas. In this post, I’ll try to make this a little more understandable.</p>
<p>First of all, the place where most people will notice that a primary key actually exists is in the crawl log on the FAST Content SSA.</p>
<p><a href="http://blog.comperiosearch.com/wp-content/uploads/2011/12/Untitled.png"><img style="background-image: none; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; margin-right: auto; padding-top: 0px; border-width: 0px;" title="Untitled" src="http://blog.comperiosearch.com/wp-content/uploads/2011/12/Untitled_thumb.png" border="0" alt="Untitled" width="536" height="238" /></a></p>
<p>Each indexed item is assigned an auto-incremented integer referred to as Item ID. All right, so let’s dig a little deeper.</p>
<p>If you’ve been reading up on FS4SP, you probably already know that there is an internal FAST-process called “qrserver”. It is responsible for receiving queries from the FAST Query SSA and internally forwarding the query to the actual index. You might also know that this process exposes a small web interface. For security reasons, it’s only available from within the server it runs on. More specifically: <a href="http://localhost:13280">http://localhost:13280</a>.</p>
<p><a href="http://blog.comperiosearch.com/wp-content/uploads/2011/12/image.png"><img style="background-image: none; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; margin-right: auto; padding-top: 0px; border-width: 0px;" title="image" src="http://blog.comperiosearch.com/wp-content/uploads/2011/12/image_thumb.png" border="0" alt="image" width="527" height="335" /></a></p>
<p>Searching for something here will return results in an internal XML format. The actual result items are listed under the &lt;RESULTSET&gt; tag a bit down in the XML. There are lots of things to talk about here, e.g. that the naming convention used internally in FAST is quite different to what is used when the results come back through the FAST Query SSA. A managed property for example, is referred to as a “field” internally. But let’s not fret over that now. Instead, let’s look at the first few properties of the first result:</p>
<p><a href="http://blog.comperiosearch.com/wp-content/uploads/2011/12/image1.png"><img style="background-image: none; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; margin-right: auto; padding-top: 0px; border-width: 0px;" title="image" src="http://blog.comperiosearch.com/wp-content/uploads/2011/12/image_thumb1.png" border="0" alt="image" width="569" height="63" /></a></p>
<p>After a few quick comparisons of the crawl log on the FAST Content SSA and the search results from the qrserver, it’s clear that the Item ID is stored in FS4SP’s index inside the property <strong>contentid</strong>. When comparing with the Item IDs listed on the FAST Content SSA, we also notice that SharePoint is prefixing the Item ID with “ssic://” when it&#8217;s stored in the index. In other words, the <em>true</em> primary key as used internally, is based on the pattern “ssic://[auto-incremented integer]”.</p>
<p>But as anyone who’s been using FAST pre-Microsoft can tell you, the contentid is actually <em>not</em> the primary key of the index. The real primary key is what’s stored inside the property <strong>internalid</strong>. The value of this property is the MD5 digest of the contentid, concatenated with the name of the content collection it is stored in. Let’s double-check, using our example. We had these two:</p><pre class="crayon-plain-tag">&amp;lt;FIELD NAME=&quot;internalid&quot;&amp;gt;8a832873c701c00135ce827d6c64c09c_sp&amp;lt;/FIELD&amp;gt;
&amp;lt;FIELD NAME=&quot;contentid&quot;&amp;gt;ssic://33&amp;lt;/FIELD&amp;gt;</pre><p>Calculating the MD5 digest of the contentid correctly yields the internalid (sans the collection suffix):</p><pre class="crayon-plain-tag">md5(&ldquo;ssic://33&rdquo;) == &ldquo;8a832873c701c00135ce827d6c64c09c&rdquo;</pre><p>Since the internalid is suffixed with the name of the collection, we can actually put several items with the same contentid into the index. The requirement being that they’re stored in separate collections, so that the concatenated internalid value becomes unique. In FS4SP however, we often use only the default “sp” collection. Luckily, SharePoint makes sure to assign the Item IDs so that they’re unique across all collections, hence creating unique internalid:s even though the items are in the same collection.</p>
<p>However, there are ways in FS4SP to index data without going through the FAST Content SSA, i.e. you can index data without letting SharePoint know about it. This happens when you’re using any of the <a href="http://technet.microsoft.com/en-us/library/ff383272.aspx">FAST Search specific connectors</a> or the command-line tool <a href="http://technet.microsoft.com/en-us/library/ee943508.aspx">docpush</a>. These tools talk directly with the index, bypassing SharePoint completely. Thus, the content id item won’t be assigned an Item ID using the “ssic://” pattern.</p>
<p>So, what happens instead? Let’s try it out. Using the docpush tool, we can send an arbitrary web page into the index:</p>
<p><a href="http://blog.comperiosearch.com/wp-content/uploads/2011/12/image2.png"><img style="background-image: none; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; margin-right: auto; padding-top: 0px; border-width: 0px;" title="image" src="http://blog.comperiosearch.com/wp-content/uploads/2011/12/image_thumb2.png" border="0" alt="image" width="563" height="102" /></a></p>
<p>Using the qrserver web interface, we inspect what was indexed:</p>
<p><a href="http://blog.comperiosearch.com/wp-content/uploads/2011/12/image3.png"><img style="background-image: none; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; margin-right: auto; padding-top: 0px; border-width: 0px;" title="image" src="http://blog.comperiosearch.com/wp-content/uploads/2011/12/image_thumb3.png" border="0" alt="image" width="544" height="80" /></a></p>
<p>In this case, the contentid property is the URL of the web page we specified. This makes sense as the URL is unique for the whole web, and as such it is also a good candidate for being a primary key in the index. A URL is just a special case of a URI, which is what many of the <a href="http://technet.microsoft.com/en-us/library/ee943520.aspx">FS4SP command-line tools</a> use when referring to the primary key of the index. Examples being the docpush tool (when deleting a item from the index with the –d switch) and the waadmin tool (used for retrieving link cardinality data for an indexed item).</p>
<p>To sum up with some key points:</p>
<ul>
<li>The primary key of the index is stored in a property called <strong>contentid</strong>, though in the SharePoint GUIs it is referred to as an <strong>Item ID</strong> and look slightly different. They relate to one another as: [contentid] = ssic://[item id]</li>
<li>Items that are indexed using the connectors of the FAST Content SSA are assigned a contentid on the form “ssic://”…</li>
<li>Items that are indexed with the FAST Search specific connectors or the docpush tool do not follow the same pattern, but are typically a proper URL or a value from a database.</li>
<li>If a command-line tool calls for a “URI” to an indexed item, use whatever is stored in the item’s contentid property.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.comperiosearch.com/blog/2011/12/18/fs4sp-primary-keys-work/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Exciting times for FAST Search, report from SPC 2011</title>
		<link>http://blog.comperiosearch.com/blog/2011/10/07/exciting-times-fast-search-report-spc-2011/</link>
		<comments>http://blog.comperiosearch.com/blog/2011/10/07/exciting-times-fast-search-report-spc-2011/#comments</comments>
		<pubDate>Fri, 07 Oct 2011 20:26:25 +0000</pubDate>
		<dc:creator><![CDATA[Marcus Johansson]]></dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[fast search]]></category>
		<category><![CDATA[microsoft sharepoint conference]]></category>
		<category><![CDATA[sharepoint]]></category>
		<category><![CDATA[spc]]></category>
		<category><![CDATA[spc2011]]></category>

		<guid isPermaLink="false">http://nuggets.comperiosearch.com/?p=698</guid>
		<description><![CDATA[Now that this year’s SharePoint conference has come to an end, and although we’ve still haven’t left sunny California just yet, we’d like to take the opportunity to share our view of the last very exciting few days. The Microsoft SharePoint Conference is consistently the number one event on SharePoint. This time, even though it [...]]]></description>
				<content:encoded><![CDATA[<p>Now that this year’s SharePoint conference has come to an end, and although we’ve still haven’t left sunny California just yet, we’d like to take the opportunity to share our view of the last very exciting few days.<strong></strong></p>
<p>The Microsoft SharePoint Conference is consistently the number one event on SharePoint. This time, even though it wasn’t even a release year, more than 7000 participants attended the conference, beating both the Microsoft Partner and the Build conference.</p>
<div id="attachment_699" style="width: 570px" class="wp-caption aligncenter"><a href="http://blog.comperiosearch.com/wp-content/uploads/2011/10/spc11_1.jpg"><img class="size-full wp-image-699" title="Microsoft SharePoint Conference 2011 venue center" src="http://blog.comperiosearch.com/wp-content/uploads/2011/10/spc11_1.jpg" alt="Microsoft SharePoint Conference 2011 venue center" width="560" height="283" /></a><p class="wp-caption-text">Microsoft SharePoint Conference 2011 venue center</p></div>
<p>We’re sincerely impressed by the professionalism and the amount of planning that must have gone into this event. Microsoft really did an amazing job; all the way from when the first invitations were sent off to when the last booth had been disassembled. As presenters on the conference, we also had the pleasure of working with Microsoft behind the scenes, and we can assure you that the success of SPC 2011 was in no way a coincidence.<strong></strong></p>
<p>Early Monday morning, Jared Spataro, Jeff Teper and Kurt DelBene kick-started the conference with an inspiring keynotes session. Besides giving the many thousands in the crowd an outline of the week, they also shared a glimpse of their opinions and the outlook of SharePoint technology going forward. If you didn’t get a chance of attending the conference, <a href="http://www.mssharepointconference.com/pages/keynote.aspx">make sure to watch the keynote online</a>.</p>
<p>As a company specializing in Enterprise Search and FAST Search for SharePoint, we’re of course extra thrilled that Microsoft &#8211; in the actual keynote -  gave us a live demonstration of a SharePoint and FAST Search installation containing more than 100 million documents. Of course, they didn’t just show it to us; an assistant was brought onto the scene and pulled the power cord to the server rack, thus triggering a full farm failure. In just a few seconds, the solution had recovered and was back online, fully operational. The crowd was sheering!<strong></strong></p>
<p>As for the actual sessions, SPC 2011 really had something for everyone. The amount of sessions, hands-on labs and activities going on was simply staggering. The Enterprise Search area alone, whether having a business-oriented or technical focus, was covered by more than 30 sessions! Including our own day-long pre-conference training session <a href="http://www.mssharepointconference.com/Pages/pre-post-conference-trainingpage.aspx#2">Learning to develop a high-end search solution with FAST Search for SharePoint 2010</a> and our break-out session on <a href="http://www.mssharepointconference.com/pages/sessiondetailsShort.aspx?sessionguid=942392c6-06e6-4be5-8d64-3e39b2c8a830">User-Centric Design for Deploying FAST Search Server 2010 for SharePoint</a>.</p>
<div id="attachment_700" style="width: 570px" class="wp-caption aligncenter"><a href="http://blog.comperiosearch.com/wp-content/uploads/2011/10/spc11_lab.jpg"><img class="size-full wp-image-700" title="Comperio hands-on lab on FAST Search for SharePoint at SPC 2011" src="http://blog.comperiosearch.com/wp-content/uploads/2011/10/spc11_lab.jpg" alt="Comperio hands-on lab on FAST Search for SharePoint at SPC 2011" width="560" height="325" /></a><p class="wp-caption-text">Comperio hands-on lab on FAST Search for SharePoint at SPC 2011</p></div>
<p>But besides all interesting sessions, attending SPC 2011 was of course about more than just learning new material. We also had an absolute blast at Disneyland, rented just for this occasion, and at the many other venues set up specifically for us attending SPC 2011. Most of the time, the partying started right when we stepped out from the elevator, as the lobby in our hotel turned out to be one of the hot spots for grabbing a “SharePint” after the sessions.</p>
<p>We’ve met so many interesting and inspiring people from all over the world; whether that someone was a SharePoint developer from down-under in trouble with their FAST Search installation or people from Fortune 100 companies around the globe looking to finally to tackle their Knowledge Management challenges.</p>
<p>Everyone at the conference must have heard the key message from Microsoft as loud and clear as us at Comperio: Enterprise Search is the solution to a wide range of problems in your organization, and FAST Search technology will help you working towards solving those problems.</p>
<p>This is an exciting time to be in the search business!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.comperiosearch.com/blog/2011/10/07/exciting-times-fast-search-report-spc-2011/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Learning about nctrl, and disabling the FAST Search Web crawler</title>
		<link>http://blog.comperiosearch.com/blog/2011/07/12/learning-about-nctrl-disabling-fast-search-web-crawler/</link>
		<comments>http://blog.comperiosearch.com/blog/2011/07/12/learning-about-nctrl-disabling-fast-search-web-crawler/#comments</comments>
		<pubDate>Tue, 12 Jul 2011 16:08:38 +0000</pubDate>
		<dc:creator><![CDATA[Marcus Johansson]]></dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[FAST Search Web Crawler]]></category>
		<category><![CDATA[fs4sp]]></category>
		<category><![CDATA[nctrl]]></category>

		<guid isPermaLink="false">http://nuggets.comperiosearch.com/?p=571</guid>
		<description><![CDATA[In FAST Search for SharePoint (FS4SP), there are two methods for crawling web sites. Either use the built-in SharePoint crawler on your FAST Content SSA, or use the far more advanced FAST Search Web crawler. For most small web crawls, it&#8217;s not necessary to use the latter, but instead much easier to set up a [...]]]></description>
				<content:encoded><![CDATA[<p>In FAST Search for SharePoint (FS4SP), there are two methods for crawling web sites. Either use the built-in SharePoint crawler on your FAST Content SSA, or use the far more advanced <a href="http://technet.microsoft.com/en-us/library/ff383271.aspx">FAST Search Web crawler</a>. For most small web crawls, it&#8217;s not necessary to use the latter, but instead much easier to set up a new web Content Source, and use <a title="the standard crawl functionality" href="http://technet.microsoft.com/en-us/library/ff384288.aspx">the standard crawl functionality</a>.</p>
<p>But even if you do, you may have noticed that the FAST Search Web crawler is still turned on behind the scenes (on a default single-node installation). The Node Controller, i.e. the &#8220;nctrl&#8221; tool that handles FS4SP internal processes, is set to automatically start the Web crawler and its associated processes by default. In this blog post, we&#8217;ll circumvent this in order to gain some insight into the inner workings of the Node Controller.</p>
<p>Run a “nctrl status”, and you will see all running FS4SP-processes:</p>
<p><a href="http://blog.comperiosearch.com/wp-content/uploads/2011/07/nctrlstatus.png"><img style="background-image: none; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; margin-right: auto; padding-top: 0px; border-width: 0px;" title="nctrlstatus" src="http://blog.comperiosearch.com/wp-content/uploads/2011/07/nctrlstatus_thumb.png" border="0" alt="nctrlstatus" width="565" height="420" /></a></p>
<p>The processes in red are all related to the crawler:</p>
<p><em>crawler<br />
</em>The main component of the FAST Search Web crawler.</p>
<p><em>browserengine<br />
</em>A component which emulates a real web browser, and makes sure the crawler “see” what a regular user see while browsing the web.</p>
<p><em>webanalyzer, fdmworker, walinkstorereceiver, walookupdb0<br />
</em>Components of the Web Analyzer, which calculates a link graph of the  crawled content. This data can be used for ranking purposes (compare to  Google’s PageRank algorithm). Please note that the Web Analyzer is also used for relevance calculations in SharePoint crawls &#8211; and not only for crawled external web content.</p>
<p>If you don’t plan to use the FAST Search Web Crawler, and don&#8217;t care for the output from the Web Analyzer module, you can shave off something like 50-200 MB of RAM usage by stopping these processes. Although it&#8217;s an easy operation, don&#8217;t do this unless you understand the steps involved, the consequences, how to roll back the changes, and most importantly: that you now tread into unsupported and undocumented waters. Also, even though I and a few other people have tested this without running into problems, it&#8217;s impossible to guarantee that your particular configuration is unaffected. But at the very least, please read on to gain some insight into how the Node Controller works.</p>
<p>If you still want to disable the FAST Search Web Crawler, stop all crawler-related processes by running the following command in a FS4SP shell:</p><pre class="crayon-plain-tag">nctrl stop browserengine crawler fdmworker walinkstorerreceiver walookupdb0 webanalyzer</pre><p>Running “nctrl status” will now show you this:</p>
<p><a href="http://blog.comperiosearch.com/wp-content/uploads/2011/07/nctrlstatus2.png"><img style="background-image: none; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; margin-right: auto; padding-top: 0px; border-width: 0px;" title="nctrlstatus2" src="http://blog.comperiosearch.com/wp-content/uploads/2011/07/nctrlstatus2_thumb.png" border="0" alt="nctrlstatus2" width="561" height="417" /></a></p>
<p>As the crawler processes are now in the “User suspended” mode, they will remain suspended even after a full restart of FS4SP.</p>
<p>If you like, you can go even further and clean up the output of “nctrl status” by removing the now disabled processes from the list altogether. To do this, open up the Node Controller’s configuration file, i.e. %FASTSEARCH%\etc\NodeConf.xml. At the top, you will see something like:</p><pre class="crayon-plain-tag">&amp;lt;startorder&amp;gt;
&nbsp; &amp;lt;proc&amp;gt;nameservice&amp;lt;/proc&amp;gt;
&nbsp; &amp;lt;proc&amp;gt;configserver&amp;lt;/proc&amp;gt;
&nbsp; &amp;lt;proc&amp;gt;contentdistributor&amp;lt;/proc&amp;gt;
&nbsp; &amp;lt;proc&amp;gt;indexer&amp;lt;/proc&amp;gt;
&nbsp; &amp;lt;proc&amp;gt;search-1&amp;lt;/proc&amp;gt;
&nbsp; &amp;lt;proc&amp;gt;topfdispatch&amp;lt;/proc&amp;gt;
&nbsp; &amp;lt;proc&amp;gt;samworker&amp;lt;/proc&amp;gt;
&nbsp; &amp;lt;proc&amp;gt;samadmin&amp;lt;/proc&amp;gt;
&nbsp; &amp;lt;proc&amp;gt;qrserver&amp;lt;/proc&amp;gt;
&nbsp; &amp;lt;proc&amp;gt;qrproxy&amp;lt;/proc&amp;gt;
&nbsp; &amp;lt;proc&amp;gt;indexingdispatcher&amp;lt;/proc&amp;gt;
&nbsp; &amp;lt;proc&amp;gt;browserengine&amp;lt;/proc&amp;gt;
&nbsp; &amp;lt;proc&amp;gt;fdmworker&amp;lt;/proc&amp;gt;
&nbsp; &amp;lt;proc&amp;gt;walookupdb0&amp;lt;/proc&amp;gt;
&nbsp; &amp;lt;proc&amp;gt;walinkstorerreceiver&amp;lt;/proc&amp;gt;
&nbsp; &amp;lt;proc&amp;gt;webanalyzer&amp;lt;/proc&amp;gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp; &amp;lt;proc&amp;gt;sprel&amp;lt;/proc&amp;gt;
&nbsp; &amp;lt;proc&amp;gt;spelltuner&amp;lt;/proc&amp;gt;
&amp;lt;/startorder&amp;gt;</pre><p>Comment out all crawler-related processes, like this:</p><pre class="crayon-plain-tag">&amp;lt;startorder&amp;gt;
&nbsp; &amp;lt;proc&amp;gt;nameservice&amp;lt;/proc&amp;gt;
&nbsp; &amp;lt;proc&amp;gt;configserver&amp;lt;/proc&amp;gt;
&nbsp; &amp;lt;proc&amp;gt;contentdistributor&amp;lt;/proc&amp;gt;
&nbsp; &amp;lt;proc&amp;gt;indexer&amp;lt;/proc&amp;gt;
&nbsp; &amp;lt;proc&amp;gt;search-1&amp;lt;/proc&amp;gt;
&nbsp; &amp;lt;proc&amp;gt;topfdispatch&amp;lt;/proc&amp;gt;
&nbsp; &amp;lt;proc&amp;gt;samworker&amp;lt;/proc&amp;gt;
&nbsp; &amp;lt;proc&amp;gt;samadmin&amp;lt;/proc&amp;gt;
&nbsp; &amp;lt;proc&amp;gt;qrserver&amp;lt;/proc&amp;gt;
&nbsp; &amp;lt;proc&amp;gt;qrproxy&amp;lt;/proc&amp;gt;
&nbsp; &amp;lt;proc&amp;gt;indexingdispatcher&amp;lt;/proc&amp;gt;
&nbsp; &amp;lt;!--
  &amp;lt;proc&amp;gt;browserengine&amp;lt;/proc&amp;gt;
&nbsp; &amp;lt;proc&amp;gt;fdmworker&amp;lt;/proc&amp;gt;
&nbsp; &amp;lt;proc&amp;gt;walookupdb0&amp;lt;/proc&amp;gt;
&nbsp; &amp;lt;proc&amp;gt;walinkstorerreceiver&amp;lt;/proc&amp;gt;
&nbsp; &amp;lt;proc&amp;gt;webanalyzer&amp;lt;/proc&amp;gt;&nbsp;
  --&amp;gt;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp; &amp;lt;proc&amp;gt;sprel&amp;lt;/proc&amp;gt;
&nbsp; &amp;lt;proc&amp;gt;spelltuner&amp;lt;/proc&amp;gt;
&amp;lt;/startorder&amp;gt;</pre><p>Save the file, and then issue the command “nctrl reloadcfg” to make the Node Controller pick up the changes. All processes you commented out are not stripped from the “nctrl status” output. But the “crawler” process remains, indeed it was not listed under the &lt;startorder&gt; tag that you just edited. This is because the crawler is administered through the “nctrl” tool itself, and not through its configuration file. Run “nctrl remove crawler” to get rid of it as well.</p>
<p>Your status output should now look like the below. Nice and clean!</p>
<p><a href="http://blog.comperiosearch.com/wp-content/uploads/2011/07/nctrlstatus3.png"><img style="background-image: none; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; margin-right: auto; padding-top: 0px; border: 0px;" title="nctrlstatus3" src="http://blog.comperiosearch.com/wp-content/uploads/2011/07/nctrlstatus3_thumb.png" border="0" alt="nctrlstatus3" width="558" height="415" /></a></p>
<p>Of course, turning off functionality like this is an advanced operation &#8211; not recommended to most users. However, even though you don&#8217;t want to do this yourself, at least you&#8217;ve now gained some insight into how FS4SP&#8217;s Node Controller works. With a little imagination and extrapolating you can now even add your own custom applications to the Node Controller, and make sure they are started alongside FS4SP. Let me know if you have any questions, or run into problems.</p>
<p><strong>Update:</strong></p>
<p>If you&#8217;re serious about getting rid of the FAST Search Web crawler, <a href="http://techmikael.blogspot.com/">Mikael from Tech and Me</a> kindly pointed out an alternative strategy for disabling it: <a href="http://technet.microsoft.com/en-us/library/ff354931.aspx">change the deployment.xml accordingly</a>, and run the Set-FASTSearchConfiguration cmdlet. This will however require you to shut down FS4SP (nctrl stop), which is not necessary using the above procedure. But it&#8217;s arguably a cleaner approach for getting rid of the crawler. TechNet has more information about <a href="http://technet.microsoft.com/en-us/library/ff381247.aspx">deployment reconfigurations</a> in general. Please note that this will overwrite your %FASTSEARCH%\etc\NodeConf.xml &#8211; editing it manually is unsupported after all.</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.comperiosearch.com/blog/2011/07/12/learning-about-nctrl-disabling-fast-search-web-crawler/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Querying FSIS with PowerShell</title>
		<link>http://blog.comperiosearch.com/blog/2011/06/21/querying-fsis-powershell/</link>
		<comments>http://blog.comperiosearch.com/blog/2011/06/21/querying-fsis-powershell/#comments</comments>
		<pubDate>Tue, 21 Jun 2011 21:39:45 +0000</pubDate>
		<dc:creator><![CDATA[Marcus Johansson]]></dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[fsis]]></category>
		<category><![CDATA[ims]]></category>
		<category><![CDATA[powershell]]></category>

		<guid isPermaLink="false">http://nuggets.comperiosearch.com/?p=510</guid>
		<description><![CDATA[When building IMS search flows in FAST Search for Internet Sites (FSIS), I typically deploy them using the Add-Flow PowerShell cmdlet. One thing that always bugs me, is that there’s no easy way of testing the flows right away from the command-line. Usually, this isn’t a problem; you can always set up a new test [...]]]></description>
				<content:encoded><![CDATA[<p>When building IMS search flows in FAST Search for Internet Sites (FSIS), I typically deploy them using the Add-Flow PowerShell cmdlet. One thing that always bugs me, is that there’s no easy way of testing the flows right away from the command-line. Usually, this isn’t a problem; you can always set up a new test site querying the flow, or just try to run it from your search application.</p>
<p>Still though, it would be cool to have a PowerShell script that runs a query through a flow, and displays the results. Turns out it’s not that hard to build! Though I have to admit it gets a little complex, and is not exactly FSIS standard procedure. But I found it interesting to put together and useful to have around – perhaps you will too.</p>
<p>There’s a link to the source code at the end of this post, and I will discuss the most important parts of the script below. So let’s dive right in! The script takes two parameters: a flow name and a query that will target the ESP default composite field. In this experimental version of the script I haven’t polished the output, and actually only prints the first result document. Feel free to modify it to allow more advanced (arbitrary?) queries and stylish output – just make sure to report back when you’re done!</p>
<p>Here’s a screenshot of what the script produces today:</p>
<p><a href="http://blog.comperiosearch.com/wp-content/uploads/2011/06/FSIS-Query-script.png"><img class="aligncenter" style="padding-left: 0px; padding-right: 0px; float: none; margin-left: auto; margin-right: auto; padding-top: 0px; border-width: 0px;" src="http://blog.comperiosearch.com/wp-content/uploads/2011/06/FSIS-Query-script_thumb.png" alt="FSIS Query script" width="575" height="338" border="0" /></a></p>
<p>The IMS nodes expose two external interfaces that clients can use to send query requests: a WCF interface and a HTTP interface. At first look, the HTTP interface probably sounds like the easy way out. But it turns out the FSIS Shell is already prepared to run WCF queries.</p>
<p>How is that you wonder? When you run the built-in FSIS shell, you’ll notice that it preloads the shell with a bunch of important FSIS snap-ins. It also loads a special application configuration, more precisely %FSIS_HOME%\Powershell\Powershell.exe.config. This file defines two important WCF endpoints: NetTcpBinding_IProcessingEngineManager and NetTcpBinding_IProcessingEngine. It also defines which certificate to use in order to secure the communication. This is exactly what we need.</p>
<blockquote><p>There’s one caveat with this approach: you’ll have to run the PowerShell console with your FSIS service user. This is because the certificate is fetched from its personal certificate store. Let me know if you find an elegant way around this.</p></blockquote>
<p>How do we actually run the flow? Well, there is an Execute-Flow cmdlet. No, there are actually two. One from the snap-in EnginePSSnapIn for running flows in general, and one from InteractionEnginePSSnapIn that targets IMS flows. When you start the FSIS shell, they’re loaded in this order:</p><pre class="crayon-plain-tag">Add-PSSnapin HostControllerPSSnapIn
Add-PSSnapin JunoPSSnapin
Add-PSSnapin EnginePSSnapIn
Add-PSSnapin InteractionEnginePSSnapIn</pre><p>Notice the problem? Yup, the one from InteractionEnginePSSnapIn will actually overwrite the one from EnginePSSnapIn. This is most likely a bug in the current FSIS release. But for the purpose of this blog post, it really doesn’t matter. We want the one from InteractionEnginePSSnapIn anyway.</p>
<p>Execute-Flow takes a Context as parameter. This context object is populated with a query and an IMS flow, and is then passed from task to task through the specified flow, until it comes out on the other end – hopefully with some search results attached to it.</p>
<p>Now is probably the time to say that this script won’t work for all types of flows. It depends on what type of tasks you put in your flow, and how you create the actual query that you’ll put on the context object. In this example, I’m using the simplest IMS flow possible: just a flow input, an ESP lookup, and the flow output:</p>
<p><a href="http://blog.comperiosearch.com/wp-content/uploads/2011/06/image.png"><img class="aligncenter" style="padding-left: 0px; padding-right: 0px; float: none; margin-left: auto; margin-right: auto; padding-top: 0px; border-width: 0px;" src="http://blog.comperiosearch.com/wp-content/uploads/2011/06/image_thumb.png" alt="image" width="394" height="121" border="0" /></a></p>
<p>So let’s create the context and make sure we target the IMS flow that was supplied when the script was called. The particular class we need is already loaded into the FSIS Shell environment, so it&#8217;s pretty easy:</p><pre class="crayon-plain-tag">$context = New-Object Microsoft.Ceres.InteractionEngine.Services.Context
$context.EnsureRouting().FlowName = $flowName</pre><p>Building the query is harder. To do that, we have to go a little outside the scope of the FSIS shell. We have to use the same assembly that FSIS uses under the hood. Most users would probably never need to do this, but rather use IMS UI Toolkit to build queries and render results.</p>
<p>The DLL we’re interested in is called Microsoft.Ceres.InteractionEngine.ContextModifiers.dll. We load it into PowerShell with the one-liner below. Notice that $env:FSIS_HOME is PowerShell’s way of referencing an environment variable, in this case the installation directory of FSIS.</p><pre class="crayon-plain-tag">[Reflection.Assembly]::LoadFile($env:FSIS_HOME + &quot;AdminUI\site\bin\Microsoft.Ceres.InteractionEngine.ContextModifiers.dll&quot;)</pre><p>After loading this assembly, we can reference classes in the ContextModifiers.Ims namespace. It contains lots of interesting classes for building advanced queries and parsing results. For now, we settle on using the ImsTermsOperator class, which translates into a standard text query. The ImsTermsOperator has several properties that control linguistics, if multiple terms within it should be ANDed or ORed, etc. For now, we just specify the “Terms” property to whatever is passed in when the script is called. Since we&#8217;re not specifying the $searchOp.Scope property, the query will target the default composite field.</p><pre class="crayon-plain-tag">$searchOp = New-Object Microsoft.Ceres.InteractionEngine.ContextModifiers.Ims.ImsTermsOperator
$searchOp.Terms = $query</pre><p>Next step is to add the $searchOp to the context, and for that we need to use a wrapper class called ImsSearch. Take a look in the source code below for the gory details about this. For now, let&#8217;s just skip right to the grand finale: we connect to IMS using Connect-ProcessingEngine, and run the flow with the Execute-Flow cmdlet; passing in the context object and getting back an updated version bundled with the search results:</p><pre class="crayon-plain-tag">Connect-ProcessingEngine $imsHost $imsPort
$context = Execute-Flow $context</pre><p>As the $context variable is serialized during transfer back and forth to IMS, we also need to explicitly parse out the search results, and cast it into an object of type Ims.ImsSearchResults. It looks a little messy, but is actually very straight-forward.</p>
<p>Take a look in the code for yourself: <a href="http://blog.comperiosearch.com/wp-content/uploads/2012/10/Query-IMS-Flow.ps1_.txt">Query-IMS-Flow.ps1</a>.</p>
<p>All of this could of course also be written in your favorite .NET language. Then you could also get around the certificate issue quite easily. I guess I’m just a PowerShell fanboy. <img class="wlEmoticon wlEmoticon-winkingsmile" style="border-style: none;" src="http://blog.comperiosearch.com/wp-content/uploads/2011/06/wlEmoticon-winkingsmile.png" alt="Winking smile" /></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.comperiosearch.com/blog/2011/06/21/querying-fsis-powershell/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
