<?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; instant search</title>
	<atom:link href="http://blog.comperiosearch.com/blog/tag/instant-search/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>Discovery engine that actually works? Recipe app to the rescue!</title>
		<link>http://blog.comperiosearch.com/blog/2014/07/18/discovery-engine-that-actually-works/</link>
		<comments>http://blog.comperiosearch.com/blog/2014/07/18/discovery-engine-that-actually-works/#comments</comments>
		<pubDate>Fri, 18 Jul 2014 11:26:57 +0000</pubDate>
		<dc:creator><![CDATA[Espen Klem]]></dc:creator>
				<category><![CDATA[English]]></category>
		<category><![CDATA[User Experience]]></category>
		<category><![CDATA[instant search]]></category>
		<category><![CDATA[recipe app]]></category>
		<category><![CDATA[suggestion engine]]></category>

		<guid isPermaLink="false">http://blog.comperiosearch.com/?p=2738</guid>
		<description><![CDATA[Great day, our seasonal food recipe search app, or just &#8220;Recipe app&#8221; for short, is in public beta&#8230; or maybe only a late alpha release. Anyway, it&#8217;s mature enough so you can get an idea of how it will look and work. Seeing others use it, I&#8217;m inclined to call it a recipe discovery engine. [...]]]></description>
				<content:encoded><![CDATA[<p>Great day, our seasonal food recipe search app, or just &#8220;Recipe app&#8221; for short, is in public beta&#8230; or maybe only a <a href="http://en.wikipedia.org/wiki/Software_release_life_cycle">late alpha release</a>. Anyway, it&#8217;s mature enough so you can get an idea of how it will look and work. Seeing others use it, I&#8217;m inclined to call it a recipe discovery engine.</p>
<p><strong>Recipe app link: <a href="http://recipe.comperiosearch.com">recipe.comperiosearch.com</a></strong></p>
<div id="attachment_2765" style="width: 510px" class="wp-caption alignnone"><a href="http://youtu.be/w5zC8EiPfkU"><img class="wp-image-2765 size-full" src="http://blog.comperiosearch.com/wp-content/uploads/2014/07/Screen-Shot-2014-07-18-at-13.19.03-e1405682496908.png" alt="Illustration - responsive design for the discovery engine" width="500" height="298" /></a><p class="wp-caption-text">Responsive design test done in HTML5, CSS3 and JavaScript. A discovery engine in the making?</p></div>
<p>We have gotten a lot of knowledge, both tech and UX. Latest of many findings was <a href="http://blog.comperiosearch.com/blog/2014/07/11/dictatorial-control-recipe-search-results-using-elasticsearch-function_score/">the custom scoring function in elasticsearch</a>. Hopefully, we&#8217;ll learn something within the business of food recipes, and we&#8217;ve received a lot of info from <a href="https://www.facebook.com/sjuves.oppskrift?fref=ts">Christopher Sjuve at Klikk.no</a>, the site we crawl for content to our search index. All blog posts on the app available under the <a href="http://blog.comperiosearch.com/blog/tag/recipe-app/">&#8220;recipe app&#8221; tag</a>.</p>
<h2>Takeaways</h2>
<p>The main intent of the app, when the idea was born back in 2011 or 2010, was to discover recipes or more general: To make a real content discovery engine based on search. Recipes that you didn&#8217;t know of or think of when planning a meal. And recipes that uses ingredients in season, thus making it relevant. In other words, the best, cheapest and most tasteful ingredients. While we continue to discover a lot of issues with how we thought the app should work technically, it really seems it can work for the end user.</p>
<h2>A general and common issue with search solved</h2>
<p>Mostly, with search, you get no real discovery. You rediscover stuff you already knew where there, or you find stuff you anticipated where there. But what with all the content unknown or not anticipated by the user? Nowhere in that process will regular search find stuff suitable for you that you initially didn&#8217;t think of. That&#8217;s a problem because you never touch a vast majority of possibly valuable content in your search index.</p>
<h2>A real content discovery engine</h2>
<p>So, what does this have to do with our recipe app? By picking the app, we know two facts upfront: The user wants food recipes, or make/serve food, to be more specific. And we know the time of year. This puts us in the position to make do a real instant search. The first screen you see is a search query already executed. The questions (search query) asked by the app to the index are then &#8220;recipes with the most in season ingredients for this month found on i.e. a farm&#8221;. We choose the farm since this is what resembles a supermarket the most. After that we let the user play with known constraints like type of meals and preparation time in addition to change place where ingredients are found and time of year.</p>
<p>More playfull approach. People swipe (when they understand that they can swipe, yes one of the UX issues) a lot from what we have seen. We&#8217;ll add some Google Analytics to the app soon, so we can track actual use.</p>
<div style="width: 323px" class="wp-caption alignnone"><img src="https://farm4.staticflickr.com/3853/14688396223_829d8d9709.jpg" alt="Illustration - testing the recipe discovery engine" width="313" height="500" /><p class="wp-caption-text">Testing on a Sony Xperia Tab Z. A lot of small bugs and a bit noisy.</p></div>
<h2>We&#8217;d love your feedback!</h2>
<p>So, what do you think of our recipe discovery engine? Is it just that, a discovery engine? Are we on to something? Do you think it would work? What should we change? Don&#8217;t be shy, give us a real uppercut feedback in the comment field below!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.comperiosearch.com/blog/2014/07/18/discovery-engine-that-actually-works/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Instant Search in SharePoint 2013</title>
		<link>http://blog.comperiosearch.com/blog/2014/05/26/instant-search-in-sharepoint-2013/</link>
		<comments>http://blog.comperiosearch.com/blog/2014/05/26/instant-search-in-sharepoint-2013/#comments</comments>
		<pubDate>Mon, 26 May 2014 07:27:23 +0000</pubDate>
		<dc:creator><![CDATA[Erik Andreassen Perez]]></dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[display templates]]></category>
		<category><![CDATA[instant search]]></category>
		<category><![CDATA[search]]></category>
		<category><![CDATA[sharepoint]]></category>
		<category><![CDATA[SharePoint 2013 Search]]></category>
		<category><![CDATA[ssa]]></category>

		<guid isPermaLink="false">http://blog.comperiosearch.com/?p=2297</guid>
		<description><![CDATA[Have you been thinking about implementing instant search to your SharePoint 2013 project, but not quite sure where to start? In this blog post I will try to explain how you can easily enhance the search experience in SharePoint 2013 in a few simple steps. Instant search is widely known as «the way Google do [...]]]></description>
				<content:encoded><![CDATA[<p>Have you been thinking about implementing instant search to your SharePoint 2013 project, but not quite sure where to start? In this blog post I will try to explain how you can easily enhance the search experience in SharePoint 2013 in a few simple steps.</p>
<p>Instant search is widely known as «the way Google do it» &#8211; in fact they were the ones who started this trend and now everyone are used to it. What if you could give your SharePoint users the same experience they are already familiar with?</p>
<p>To begin with you must have in mind that instant search <strong>will</strong> produce a lot more queries and that your search performance <strong>will</strong> get worse if you have too many users hammering your SSA (Search Service Application). So, yes &#8211; there is a risk. The trade-off is high if you can increase the search experience to your users, but there’s also a risk of damaging the search experience totally if things start to go slow and people end up getting zero-hits.</p>
<p>Anyways, for the proof of concept you don’t need to think about this now :-)</p>
<p>Before moving on please check that you can meet these prerequisites:</p>
<p><strong>Prerequisites</strong></p>
<ul>
<li>Administrator Access to a SharePoint 2013 site</li>
<li>SharePoint Designer 2013 or a way of mapping your site&#8217;s directory</li>
<li>A text editor such as Sublime Text or Notepad++ (doesn&#8217;t really matter, but I recommend an editor with some code highlighting / intellisense)</li>
<li>Basic understanding of the concept regarding DisplayTemplate in SharePoint 2013 (You can read more about it <a href="http://borderingdotnet.blogspot.fi/2013/03/the-anatomy-of-sharepoint-2013-display.html">here</a> and <a href="http://msdn.microsoft.com/en-us/library/office/jj945138(v=office.15).aspx">here</a> :-) )</li>
</ul>
<p>What we are going to do is that we are simply going to create a new DisplayTemplate for the SearchBox Control based on the original DisplayTemplate and edit the OnKeyUpEvent.</p>
<p><strong>Changing the DisplayTemplate</strong></p>
<ol>
<ol>
<li>Open SharePoint Designer 2013 and open your site</li>
<li>Browse to http://SPSite/_catalogs/masterpage/Display Template/Search</li>
<li>Create a copy of the DisplayTemplate named Control_SearchBox.html and name it Control_InstantSearchBox.html and open it and edit the &lt;title&gt;-tag to something else (you’ll need it do identify the template later)</li>
<li> Go to the javascript section in the template and create a function called  doInstantSearch(clientControl, value, event) that only executes the normal query request.</li>
</ol>
</ol>
<p>It should look something like this:<script src="https://gist.github.com/38a2fd89c8d10e15ea70.js?file=InstantSearch_Example_1.js"></script></p>
<ol>
<li>Edit the searchbox-control’s ‘onkeyup’-event by replacing the attribute’s value with: ‘doInstantSearch($getClientControl(this), this.value, event);’ and save your template. Now you can go to your SearchBox web part and change the template to your new one (look for the title you set in step 3.) and test it yourself.</li>
<li>Now you have a one-to-one relationship between each key you press and query that you send to your SSA. However, as you will probably notice, the whole thing feels a little bit slow and not so smooth. This is because you are hammering your SSA and re-rendering your template each time you press a key &#8211; even if it’s not a real character &#8211; not so funny right? Let&#8217;s fix it.</li>
<li>In order to fix this we need to add a character-filter and a timeout to our function. We will get the character from the keyCode and try to match the character using a regular expression. In this example we will operate with a RegEx matching all alphanumeric-characters including special norwegian characters like «æ ø å». If the character matches it we will reset the timeout function and start over with a new 300 ms delay. When we hit a non-alphanumeric character or the delay times out we will execute the search request.</li>
</ol>
<p>This is what we end up with:<br />
<script src="https://gist.github.com/38a2fd89c8d10e15ea70.js?file=InstantSearch_Example_2.js"></script></p>
<p>And now you have an instant search with a 300 ms delay for each legal character that the user enters in the search box.</p>
<p>Try it yourself :)</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.comperiosearch.com/blog/2014/05/26/instant-search-in-sharepoint-2013/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
