What’s new in search for SharePoint 2013
CC Attribution - NonCommercial - ShareAlike 3.0 Unported:
You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal and non-commercial purpose as long as the work is attributed to the author in the manner specified by the author or licensor and the work or content is shared also in adapted form only under the conditions of this
Solheim, Helge Grenager
This session will introduce search in SharePoint 2013. It will show that: - Experiences are dynamic, interactive, and actionable, - Search powers core SP experiences (social, +more), - Extensibility has never been easier or more powerful, - There is a single search architecture, - The session will include three demos - Core enterprise search, - Integrated SharePoint search experiences, - Extending search
 Hi, I'm welcome everyone. Welcome to this session about search in SharePoint. I hope you all had a good lunch and that you're ready to sit down and relax and hear a bit about search. So first I just start out with saying that there are lots of different types of search. We all use Google every day or someone else use Bing, but it's all about web search, searching what's publicly available. What I'm going to talk about here is about enterprise search. So it's search where you're searching within your company. It could be a small company or a large company, but it's all internal data. And within that area there's a number of players. It's a large market. And as you can see here, this is a Gardner Magic Quadrant from April. You recognize some of the known names here like Google, Oracle, Microsoft, and as well as some other players that don't have internet search engines for you. But that's just a little bit of background on the market. Two words about myself. My name is Helge. I started in Throneime and I started my career with Computus. Anyone here from Computus or having worked for them? Oh, a couple of people over there. Nice. Then I started working for a company called Fast, Fast Search and Transfer in 2005. We delivered lots of search solutions to various companies. And in 2008 we were acquired by Microsoft. And we became Microsoft Development Center in Norway. We developed a lot of different search solutions. We're part of the office organization. A few words about Microsoft Development Center in Norway as well. We were around 200 developers. We spread across Oslo, Throneime and Throne Sur. And I just picked a quote here from our webpage saying that there's a lot of good people working for us. And I'd say that's plus one from me on that quote. It's a great place to be. And I just wanted to mention this because I know there aren't that many people in Norway that actually are aware that Microsoft has a development center here in Norway. Okay. So why are we here? I want to show you that SharePoint Search has dynamic and interactive experiences now. We cover, we power a lot of SharePoint experiences beyond basic search. And extensibility has never been easier and more powerful than it is now. So for US developers you have the opportunity to not just use our out-of-the-box search, but you can improve, you can build on what we already have and make lots of customizations and special solutions for your customers. So I already gave you a little bit of history coming from fast into Microsoft. And I like to say that when we delivered search before, it was very much an early adopter market. So we went for the opportunities. We went for the big customers. We created very complex solutions and it was like a feature war. So we would always compete with the other companies based on the number of features we had. And that was really what it was about. Now that we've taken the fast search engine into Microsoft, it's more about a mass market solution. So it's for everyone. It's about having low total cost ownership. You don't have to have a specialized fast IT guy running your service anymore. You just have the ordinary IT operations. And you don't have to fiddle with thousands of XML files to configure the system, but you actually develop in an ordinary way. In addition, we've moved from a situation where we only delivered a platform out of the box earlier. We now deliver a complete solution that you can start using from day one, but you can use as a basis to improve. So for us, it's been a ride where we've gone from sort of an early adopter to a mass market when it comes to maturity for search. However, I know you guys are developers, so you don't like just talk, talk, talk. So I'll try to drive this presentation through some demos. And if I have time, we'll get to some code in the end. And I was encouraged to say, please, when you leave, leave your green, red, and orange notes in the box so we can get some feedback and improve later. Okay, so core enterprise search. Let's see here if I can bring my demo up. So this is a standard SharePoint intranet team site. How many people here have used SharePoint? Oh, almost everyone. Great. And anyone heard of Contoso before? Ah, nice. So Contoso is our pretend to be company. It's sort of what we are allowed to talk about because there is no real Contoso company as far as I know. So we use it for demos, test data, whatever. And now I'm actually working in Contoso here in this setting. So I'll show you how our intranet search looks like. As you can see here, we put the search box up in the right hand corner. And if I go up in that box, I can search the site here. So this is my department site. So if I type in a search here, I would search across the departments that are put into this site. And the reason we did it like that is because our research shown that most users when they do a search on the SharePoint site, they want to search within that site. If I, however, want to search across everything in my company, I can change that to search everything. And I can search for something like Contoso Electronics. And that's going to search across my entire company. Now, what we see here is what we call the Enterprise Search Center. And I thought I'd just walk you through what we have here in terms of functionality. And then we'll dig more into sort of what's behind the scenes later. So on the left hand side, we have a couple of refiners. There's a refiner on the result type. And what that means is if I click on Excel here, it'll filter my current search results with only Excel result types. So that's what we call a refiner. You're refining on something. In the same way, we have authors here. So I can zoom in on documents written by different people. I can also go in here and type in a name. So this is a colleague of mine in Contoso. And if I select her, I'll only see documents written by that person. So that's another type of refiner. We also have a histogram type of refiner at the bottom. This is the modified date. So this shows when these documents were changed. So I can change this to only see the most recent ones, for example. And then my result set changes as I do this. So it's been a design goal of ours for this release to have a fluid but also simple user experience here. So notice there's not a lot of Chrome, not a lot of lines and bars and boxes. It's very simple and neat, clean UI here. So moving on, we have the search box, of course. We have to have a search box on the search page. Below the search box, we have a couple of so-called search verticals. So everything makes me search through everything. People is a people search experience where I look for people in my organization. That one has improved since the last SharePoint version. And then we have a new one called conversations. That's where we search through the new social aspects of SharePoint. So we have conversations and we have community feeds and even people will surface there. We also have a new video search experience. That one has the ability to search in videos in a different way. We have different refiners there and you can play the videos, etc. And there's a fifth search vertical that's hidden here. It's called reports. So if you have Excel data or other types of data you want to report on, you can configure those and then you can have a place to search for all that data. Okay, then below the search verticals, we have the so-called personal favorites. So when I did this search in the past, I clicked on this result here and that's the personal favorite. So that's a feature that allows me to run the same search over again and easily come back to what I've seen before. Then, of course, we have the results. That's the main part of the search page. And each of these results are shown here and it's easy to see what's the PowerPoint, what's the conversation, what's the video, etc. And as I hover over this, you can see that there's a hover panel here. And everything you see on this page is built using HTML5 and JavaScript and CSS. So this is a big change since the previous SharePoint where it was a lot of XSLT and XML transformations beneath what you're seeing. Here, everything is opened up and it's a lot easier for you guys to change this to your liking. Okay, so I'll just do another search here. Packaging project history. So here, we can have a more look at a Word document here. So as you'll see here, it says on the upper right-hand corner the number of times someone looked at this document. So I can immediately see that this is a pretty popular document. It's a bit of open 57 times. I also have a preview of this document here. So I can zoom in, scroll, move from page to page, etc. in this pane here. If I had a larger screener solution, I would see more of this document. But it's easier for me to recognize whether this is what I'm looking for or not. Then I also have the different sections of the document in the middle here. So if I click on one of these, I'll go into that section in the document. So I'm now starting the Word app here and I'm immediately getting into that section. So if this was the section I was looking for, I could very easily move from a query into the section in question. Okay. What you also see is that at the bottom here of the hovercard, I have a number of actions. So this makes me capable of immediately acting on this document so I can open it in Word, win an edit, I can do other types of actions. We'll have a further look into those later. Okay. In PowerPoint, we have the same kind of preview. When that's done loading, we can go through here. We'll see the animations are similar to what they are in the real client PowerPoint. And that's a great improvement. Okay. I'll do another query for you. So for Excel, we've taken a slightly different approach. For Excel, we don't show you the whole page in Excel, but we instead show the name tables and the graphs. So here I can quickly look through the graphs and it's usually pretty easy to read out the numbers and so on. So often I can find exactly what I'm looking for without even opening this Excel in the Excel client. What I also want to comment on here is these number of views here, they say something about how popular this document is. And that's part of our ranking algorithm now. So if a document is very popular and clicked a lot, that makes it go up in the result list for me. Okay. Next, I'm looking at finding PowerPoint presentations for product overview. So product overview. And at least within Microsoft, we call those decks. So that's a generic word for a PowerPoint presentation. So what's going to happen if I type in product overview decks here? Well, in the past, I would just search and then get results back that have all those three words in them. So anything with product, overview and deck. And that's not really what I'm looking for. I don't care whether the word deck is in this deck I'm looking for. I just want the deck. So what's going to happen? What happens is that we have a query rule here. And that query rule understands that decks is a magic word or a action word that I'm using to signal that I'm looking for PowerPoints. And therefore, what I get up at the top here is exactly PowerPoint presentations for product overview. So none of these PowerPoints here need to actually contain the word deck, but they're still shown in my results. And that's a great improvement for trying to understand the intent of the user. So we're going to have a little bit of a look at query rules because that was an instance of a query rule. And if I search for query rules here, I have a so-called best bet here, which is kind of the best suggestion for a hit on this query. And that's explaining what the query rule is. So a query rule is part of what we call our intent system. So we're trying to understand what is it that the users are actually looking for. The first example of a type of query rule is when you're looking for something with a particular keyword. So if you're typing in deck, it's because you want documents of that result type. It's not because you want documents with that word inside it. So that's one type of query rule that we support, where we have action terms. And whenever you do that, what we can do is we can show you results of a particular type or of a couple of types. And we can also then do the query and ignore that action term. So that's the way of acting on that kind of query. Another type of query we have is if I'm looking for the department name of someone, I type in their name. And whenever I type in a name, our system will recognize that as a named entity from the SharePoint user profile store. And then it will show people with that name because that's probably what I'm looking for. I don't need to find all the documents containing that name. That might sound like a very simple query rule, but this also applies to other types of entities. So if you have a product database, for example, you can set that database up as a taxonomy. And whenever your query is a hit towards your product database, you can provide a specialized product experience. And you can show products, products that are related, etc. to the user. So that's also a sort of a whole new type of behavior in the system that we added. A third example is usage-based query rules. So before Microsoft was launching or at the time we were launching Microsoft Surface, Surface was a very popular query in our video search. And based on that behavior, whenever somebody searched for Surface, we would show videos in the other verticals as well because we knew that whenever someone searched for that, they were likely looking for a video of this. So just based on previous user behavior, we can also have query rules that show different types of content in those cases. Okay. So that's really the first demo I wanted to show you. I hope I succeeded in showing you that we sort of have a fresh new dynamic search experience based on HTML5, JavaScript, CSS. There are lots of pieces here, contents, horror panels, refiners, counts, I actually forgot to say. In the refiners you saw, it was all text and no counts. We also support showing to the user that there are 117 Excel documents and 34 Word documents, for example. And that's just a small change to the display template and then you add that information. Our user research showed before we released this that most users didn't actually use that information but that might be different in your case and with your customer, of course. So feel free to change that. The information is available. So by having a search box on all SharePoint pages, information is a lot easier available than before. The personal favorites is a good way of coming back to what you've seen before and the different search verticals provide you with different search experiences. And we also looked at how you could drill into a particular section in the document very quickly to find what you're looking for. Okay. So that was sort of the basic search experience pretty quickly. Yeah, actually, there's one thing I want to show you more there. If I search for a person in my company here, Sarah Davies, it does as I explained about query rules. It identifies this as being a person and then it shows that there is a person called Sarah Davies here. And this is like a teaser to move me over to a people experience. So by clicking here, I'm sent over to the people experience. So now I'm in the people search and I can search for other people or other things here. So let's say I'm looking for a folk in the signs. Now since I'm in the people search vertical, I have sort of indicated that I'm looking for people here. And some people, they actually update their SharePoint user profile. How many update their SharePoint user profile here? A couple of people. Okay. How many updates are linked in profile? A couple more people. Good. So my point here is that people don't always update their SharePoint profile, unfortunately for us. But we have to relate to that. So when I search for folk in the signs here, I get a number of hits down here with people that have that in their profile. But I also get a result block here with people that have actually written about this topic. So if I hover over Alex Darrow here, I can see he has written some documents and PowerPoints with those terms in the title. So then it's kind of obvious for me that, yeah, he actually works in folk in the signs. Even though he hasn't updated his user profile, which frankly, not that many people actually do in SharePoint, they have enough with updating the LinkedIn profile. Or their Facebook or whatever, somewhere else at least. Okay. And then if I just show you one more thing here, marketing. When I first did this demo, I had to type in marketing video to find a marketing video. But as I was practicing earlier, I sort of told the system that when I search for marketing, I often want to show a video. So here I can click through two videos. And this is the video experience. And here I can click to play a video and I can have different refiners, etc. that are relevant for a video. But what I think is interesting for you guys is that this whole video vertical here was created by a team that's not part of our team. And this video vertical could have been created by anyone, any developer, just using SharePoint 2013 and installing that vertical on top of the existing out of the box solution. So this one is shipped out of the box. But it could have been something that someone sold as a SharePoint app or gave their customer as part of their work. So this is the kind of solutions you can easily provide to your company or to your customers by just using extensibility mechanisms we have. Okay, and then I am back here again, or here actually. And the next thing I thought I'd show you a little bit always, sort of how Search Not Only is a feature of its own, but is also hidden a bit behind the scenes for a number of other SharePoint features. So if we go here and look at this, if I hover over this PowerPoint here, I can click on Follow and that's part of our social notification system. And it says that I am now following this document. I could also click on View Library here and that's going to take me into the document library feature of SharePoint. So this is where all the documents that are in that same folder are stored. And that's a pretty useful feature actually because whenever you get the hit, you might also be interested in related documents. So just clicking on View Library will take you to that folder. It's kind of a country view maybe, but it's also very useful. And inside here, we now have a full real good search solution inside the list in the previous SharePoint release. When you did the search in the list, you only searched the titles. And now we actually index everything in these documents and also search the contents and all the metadata. And this is where I can show you an example of what we call upscoping. So now I just made a search within this library. If I click here, I'll search more folders. If I click again, I'll search the entire site. And if I click even once more, I'll search my entire company. So that's why I'm doing what we call upscoping. So searching wider and wider in the amount of data we have. Okay. Then there's something called News Feed. So this is where new SharePoint social features are hidden. And here I can look at documents where I've been mentioned. And so when all of this is actually driven by search. So for example, there's a trending tag here. If I click on Product Development, there's a trending tag. These are conversations related to that tag. If I query, let's see here, if I do a query for new to marketing, I can get some different types of results here. Community site is a new type of site template in SharePoint. So that's for setting up communities with discussions and forums and so on. I can also go to my News Feed here. Let me click. And if I look here, I'm following a number of people and documents. If I look at the documents I'm following, first of all, you'll of course see the one I clicked follow on earlier, as well as a number of other documents. But you'd also see some suggested documents to follow. And this is also something that's driven by our search technology. These are recommendations similar to what Amazon shows you when you buy something. They say other customers that bought this, they also bought this. So that's what you get here. Other users that are following these documents or have looked at similar documents or have other things in common with you, they look at these documents. So that's a recommendation from our side. And that's really an important part of the new recommendation system. So just summed up, search is not only search, but it's also showing up in a number of other places like list search, social experiences, and recommendations. And then I want to tell you a little bit about the underlying architecture for search and share points. So on the content side, we obviously have to get content into our search index. So we crawl content. There's been a number of improvements here for how we crawl so we can crawl quicker and more at the time, etc. But it's all about crawling all your SharePoint content, all your files, all your HTTP servers, your notes, databases, exchange, etc. And I guess the biggest new feature is the so-called continuous crawl that will give you very high freshness on your data, meaning from the time somebody actually changed the SharePoint document until it's that changes indexed is as low as possible. In the content processing module, we look at one-on-one document and we break them up. We figure out what sort of language this document is in. We do spell checking, send them an expansion. We do lots of things there. And we have a call out there. So for a developer, you can make a call out your own code and add some logic to that document extraction. In the analytics processing component, there we look at many documents at the same time. So it's a place where we look at the links between pages to do page ranking. And we look at the clicks done by users in the front end and we aggregate all that data and send it into the index. And then what I call the index here or the search core is really a mix of what we used to have in our different search offerings in SharePoint 2010. So in SharePoint 2010, there were three search offerings. Then there was sort of a free, freely available, at what's called SharePoint Foundation, pretty simple search solution. Then we had the built-in search that came with SharePoint and we had fast search for SharePoint 2010. And we took all of those things and sort of picked the best from each of them and put into a new indexing component here. And that's where we index the data. So whenever we process the document, we take all those words, put in an inverted index. And when someone types in a query, it'll go through the query processing, where we again do synonym expansion. So if you type in car, you also want to get hits for cars or vehicle or similar terms. And then we send that query to the index. And in the index is where we return a list of documents for the user to see. There's a component called Web Frontend here. So that's the frontend. And there's a public API there, so it's possible to create your own client-side solutions using CSOM or REST OVData. Or you can just use the out-of-the-box solution we provide. So when it comes to search as a development platform, because some of these pieces aren't really relevant for you, I guess. If you can't change it or add to it, then why should you care? So here I tried to list some of the things that is, I think, relevant for you. On the content side, it's always relevant to know how you can get the content into your system. So you want to know about what out-of-the-box connectors are available or what custom connectors are available, what third-party connectors you can buy if your customer has a special need or has special content sources, and how you can set up the crawls and how these things work. On the content processing side, we have this new mechanism for a web service call-out. So that allows you to add your own logic, add your own code, help the system to get more information out of the documents you see. We also do have a link there to your taxonomy, your product databases, et cetera. So if you set up a database of product IDs, we can use that and extract those products with the documents. So whenever you do a search, you can later refine them, only find documents that actually refer to a particular product, et cetera. In the index itself, the flexible index schema is perhaps one of the things that's most relevant to customize. So it's about how we map what is crawled from the content side into the actual indexing structures and how those indexing structures are surface to the user. There's also the opportunity to add your own relevancy model. I'll talk a bit about that later if I have time for it. But then we also have query rules. And I showed you some of the out-of-the-box query rules, like when I typed in deck, I got PowerPoints. And we'll have a look at an example how we can create a query rule of our own and what you do with that one. And then, of course, on the consumer or on the sort of running queries, it's possible to integrate different types of devices on top of our SharePoint here. But first, let's have a look at display templates. So this is pretty similar to the search I did earlier. And on this page, on the left-hand side, we have a number of refiners, and they are all built on display templates. So the result type and the author refiner, those are two very simple text-label refiners. But the modified date is a more advanced one, which is a graphical histogram showing the actual distribution of changes for these documents. So it's possible for you to add whatever refiner you want here. You could add refinement on some other value, or you could create your own visualization of the existing values, et cetera. So there are lots of opportunities to make this search experience the way you want it. Then the search box and the verticals, those are also two display templates. So if you like, you can make the search box look totally different and the same with the verticals. They don't have to look like that. You can definitely change their look and feel. The personal favorites is a display template. Each of the different types or results, like a video or a community site or a conversation or a PowerPoint, those are all display templates, so you can change each one of them. And then maybe the most interesting part is the hover panel here, another display template. So there's a hover panel display template for PowerPoint. And everything in here you can take away or you can add your own actions, do things like that to customize this. And that's really a great opportunity to customize the search. And that leads us into the next section on how to actually extend the search. So we will start out with result types. So result types are what you would intuitively understand. So PowerPoint is a type of result, Word is a type of result, VCO is a type of result. What we can do is we can take a copy of one of the existing ones and then we can modify it. So this PowerPoint here, we can change this one and we can say that, okay, so it should match a Compton type of PowerPoint, but we could also add other types of conditions. So we could say it only matches that one if it's assigned to equals and then something here. So I can add some conditions here and then in those special circumstances, this is the result type that we're going to use. And so what should this look like? And what I'm referring to here is simply, as you see here, URLs in the master page gallery. So it's a JavaScript file that renders this one. So by just adding a result type and referring to a different JavaScript file, I can get a totally different rendering of some new type of result. And it can be in the combination of managed properties that are indexed. So it's definitely something that's easy to add to. Okay, so that's the result type. I also want to show you something about query rules. So before I do, I want to do a test here. In Microsoft at least, videos are called Flix. So if I search for marketing Flix, I would hope to see some videos. Unfortunately, I don't see any. And it's probably because Flix is a word here that's not in the videos. So what I want to do is I want to create a query rule that actually makes sure I get to see those videos if I do that kind of a query. So we'll go into here. There is actually a video query rule. So I'll copy that one as a starting point. And then we'll see how we can actually make this one do something interesting. So I'll just call this video Flix. And I'll say that if this one matches Flix or Flix, if the query contains any of these phrases, then I want to see a video. So I say the start and the end can match these queries. And if that's the case, then the match should be assigned to a so-called action term and the unmatched things, whatever else I typed in, should be the subject terms. Okay, so that's good. And then what I actually want to do is add a result block here. So I want to rank the result block showing videos for, or I can actually edit this one, because this came from copying the old video rule there. So I'm saying this one is Flix at MDC for subject terms. And then this is the query I'm sending forward. So remember, action terms is assigned to what's recognized. And the rest is assigned to subject terms. So now I'm just sending the subject terms, the rest of my query, into the real query here. And it's going to be against local video results. And there are some other settings and options you can have here. But in a sense, this is all I need to have a useful query rule. And then this query rule, then hopefully will give me videos back once it's saved and everything is set up. Okay, so if we go back here and do the same query over again, there we are, Flix at MDC for marketing. So that's a new query rule. And it was pretty easy to configure. And it takes me over to my video vertical. So imagine now this is your video search. And then this is what you would be seeing here. So it's really a way to get users into other search experiences the way we did it here. We could also have just ignored having a link there and just put in some videos without having the user noticing that there's something special here. And that's another way of using query rules. You actually can use them to add sort of the best bets, the usual best hits to your queries. You can add whole blocks of results, just single results, you can have those things at the top or ranked in with the rest. And you can add this kind of links to other search experiences. And when it comes to the conditions we can have here, I mentioned earlier that there are different types of query rules. So some have this kind of action term. But the most powerful ones are really those where you back them up with a dictionary. So we have a dictionary of all your employees, all your products, whatever. And that's when you actually trigger these query rules. And you can also have rules that are so called extra rank rules where you reorder the results when this happens. Okay, but that was a quick example of how you can extend search. So hopefully I showed you that using the result types and the display templates and query rules, you can build your own intent-based solutions. There's another part here I should mention. I'm not going to demo that one now, but there's something called a content search web part. And that's a web part where you add a query. And then whenever the page renders, that query is run and something is rendered. And that's extremely powerful to create portals or product solutions. And so when, well actually I might have, yeah, here I have a, okay, I am going to show you. So this is Contoso Superstore. And this whole page is driven by different web parts that run queries. So there's a taxonomy here of products. And whenever I am in the menu, I'm using the taxonomy to render the menu. And so this is the front page of this site. So we get favorites driven by queries, recommendations, et cetera. And if I click on cameras or cameras as well here, I'll see this is all driven by search. And that means someone just have to maintain the product database. And there is, I think it's only four pages defined to drive a whole product experience here. So it's a really powerful, yet simple way to market your products and to create a product experience. So that's the content search web part where it's simply, there's no query by the end user, but there's a query by the patron based on the context you're in. Okay, then a little bit about relevance. We are very dedicated towards relevance. Relevance is how relevant is this document to this query? And which document should I show you? Because most users, they don't bother paging between the first couple of pages in the search results. I mean, have you ever paged to page 10 on Google? I likely not. Well, how many have I not? Okay, so everyone tried a little bit. But we don't usually do that. And we have numbers to show that it's really important what we show on that first page. So what we've done now is we have worked a lot on this. Now we take more into account how close the terms are to each other. So whenever you type in something, you're not really interesting. If you're searching for a black cat, you don't want the document where black is on page one and cat is on page 17. It doesn't matter. That's not what you're looking for. So we need to take proximity over into account and we need to take recency of documents. So newer documents are more likely to be what you're looking for, etc. There's a lot of work going on into this and we've opened this up as well. So our configuration of ranking is an XML file. And if you like, you can change that file. That's maybe for the more advanced, but it's still something that a lot of customers want to do because they want to tweak relevance to the maximum. They want their employees to get the best results or they want their customers to get the best products or the products that they actually want to sell. So the order or results that's really important and it's a major area where developers can contribute with customized solutions. Okay. Have anyone read the article in the developer that my colleague Ergin and I wrote? No, good. Good. Because then I get to tell you a bit about this example. That's great. So in SharePoint, in all the document libraries, there's a rating feature. So anyone can click on a star from zero to five, giving a rating to each document. And that's fine. And we also index this information. It's actually in the so-called retrievable managed property called average rating. Retrievable means that at the time of the query, we can send that back from the search engine and it can be presented to the user. Retrievable does not mean you can query for it. So you can't ask for documents with a certain rating just because it's retrievable. Then it has to be queryable or, yeah, queryable. It's also queryable. This is managed property, by the way. However, what we want to do now in our example here is we want to show that rating along with the word documents in the result set. So we want every document to get this rating available. So how do we do that? Luckily, that's kind of one of the extensibility scenarios that we have designed for. So what we do is the first thing is we modify the word display templates and we make sure that we get that data because we're not asking for that managed property because we're not showing it. So we have to put in the display template that please ask the search engine for this average rating managed property. So we just copy the existing word display template and we modify it. And if you look in that XML, it looks like this. So we've added average rating here as the managed property we want to get in addition to all the others. So there's, as you can see, there's a large number of things we are getting. Title, description, editor, last modified time, collapsing status, document ID, he title, summary, file extension, etc. So we get a lot of data, but we add one more thing here. Then the next we want to do or have to do is to make sure we render this rating. So now we made sure we actually ask for it at query time. So we want to render it. And the way we do it here in this example is we include a JavaScript file from our word display template, which is also a JavaScript file. We just include one that contains a method, as you can see at the bottom here, with average rating, rating HTML, sorry, that will output some HTML. And this CTX context.currentItem.AverageRating, that's how I refer to a managed property for the current result we're at. So when I add this line here, this is going to be run for every result in on that result page. And then rating HTML is invoked 10 times typically. And we get some additional HTML out of this. And that's really all it takes. So the function we're using to render here is like this. So we just get the average rating as a number, as an input, and we produce a number of full and empty stars, depending on that. And in the end, it's going to look like this. So this is how it typically looks. And then we get these stars at the bottom. So that's really all it takes for you guys to customize your result page with some more information. And maybe average rating is not what your company wants or needs. But typically there are other needs that people want to extend their search experience with. So really, what I hope I managed to convey to you is that the search experience is a pretty dynamic, interactive, and actionable thing now. I showed you how search powers some of the core experiences, so social, and others. And also, we looked at the bit of extensibility. It's never been easier or more powerful than it is now. So I suggest you go and have some fun with extensibility. Okay. Any questions? You guys been awfully quiet so far. No questions? Okay. Then I'll just say have a nice day. And if you actually have questions, feel free to approach me later and I'll be happy to answer them. Thank you.
 Hi, I'm welcome everyone. Welcome to this session about search in SharePoint. I hope you all  had a good lunch and that you're ready to sit down and relax and hear a bit about search.  So first I just start out with saying that there are lots of different types of search.  We all use Google every day or someone else use Bing, but it's all about web search,  searching what's publicly available. What I'm going to talk about here is about enterprise  search. So it's search where you're searching within your company. It could be a small company  or a large company, but it's all internal data. And within that area there's a number  of players. It's a large market. And as you can see here, this is a Gardner Magic Quadrant  from April. You recognize some of the known names here like Google, Oracle, Microsoft,  and as well as some other players that don't have internet search engines for you. But  that's just a little bit of background on the market. Two words about myself. My name is  Helge. I started in Throneime and I started my career with Computus. Anyone here from  Computus or having worked for them? Oh, a couple of people over there. Nice. Then I started  working for a company called Fast, Fast Search and Transfer in 2005. We delivered lots of  search solutions to various companies. And in 2008 we were acquired by Microsoft. And  we became Microsoft Development Center in Norway. We developed a lot of different search  solutions. We're part of the office organization. A few words about Microsoft Development Center  in Norway as well. We were around 200 developers. We spread across Oslo, Throneime and Throne  Sur. And I just picked a quote here from our webpage saying that there's a lot of good  people working for us. And I'd say that's plus one from me on that quote. It's a great  place to be. And I just wanted to mention this because I know there aren't that many  people in Norway that actually are aware that Microsoft has a development center here in  Norway. Okay. So why are we here? I want to show you that SharePoint Search has dynamic  and interactive experiences now. We cover, we power a lot of SharePoint experiences beyond  basic search. And extensibility has never been easier and more powerful than it is now.  So for US developers you have the opportunity to not just use our out-of-the-box search,  but you can improve, you can build on what we already have and make lots of customizations  and special solutions for your customers. So I already gave you a little bit of history  coming from fast into Microsoft. And I like to say that when we delivered search before,  it was very much an early adopter market. So we went for the opportunities. We went  for the big customers. We created very complex solutions and it was like a feature war. So  we would always compete with the other companies based on the number of features we had. And  that was really what it was about. Now that we've taken the fast search engine into Microsoft,  it's more about a mass market solution. So it's for everyone. It's about having low total  cost ownership. You don't have to have a specialized fast IT guy running your service  anymore. You just have the ordinary IT operations. And you don't have to fiddle with thousands  of XML files to configure the system, but you actually develop in an ordinary way.  In addition, we've moved from a situation where we only delivered a platform out of  the box earlier. We now deliver a complete solution that you can start using from day  one, but you can use as a basis to improve. So for us, it's been a ride where we've gone  from sort of an early adopter to a mass market when it comes to maturity for search. However,  I know you guys are developers, so you don't like just talk, talk, talk. So I'll try to  drive this presentation through some demos. And if I have time, we'll get to some code  in the end. And I was encouraged to say, please, when you leave, leave your green, red, and  orange notes in the box so we can get some feedback and improve later.  Okay, so core enterprise search. Let's see here if I can bring my demo up. So this is  a standard SharePoint intranet team site. How many people here have used SharePoint?  Oh, almost everyone. Great. And anyone heard of Contoso before? Ah, nice. So Contoso is  our pretend to be company. It's sort of what we are allowed to talk about because there  is no real Contoso company as far as I know. So we use it for demos, test data, whatever.  And now I'm actually working in Contoso here in this setting. So I'll show you how our  intranet search looks like. As you can see here, we put the search box up in the right  hand corner. And if I go up in that box, I can search the site here. So this is my department  site. So if I type in a search here, I would search across the departments that are put  into this site. And the reason we did it like that is because our research shown that most  users when they do a search on the SharePoint site, they want to search within that site.  If I, however, want to search across everything in my company, I can change that to search  everything. And I can search for something like Contoso Electronics. And that's going  to search across my entire company. Now, what we see here is what we call the Enterprise  Search Center. And I thought I'd just walk you through what we have here in terms of  functionality. And then we'll dig more into sort of what's behind the scenes later. So  on the left hand side, we have a couple of refiners. There's a refiner on the result  type. And what that means is if I click on Excel here, it'll filter my current search  results with only Excel result types. So that's what we call a refiner. You're refining on  something. In the same way, we have authors here. So I can zoom in on documents written  by different people. I can also go in here and type in a name. So this is a colleague  of mine in Contoso. And if I select her, I'll only see documents written by that person.  So that's another type of refiner. We also have a histogram type of refiner at the bottom.  This is the modified date. So this shows when these documents were changed. So I can change  this to only see the most recent ones, for example. And then my result set changes as  I do this. So it's been a design goal of ours for this release to have a fluid but also  simple user experience here. So notice there's not a lot of Chrome, not a lot of lines and  bars and boxes. It's very simple and neat, clean UI here. So moving on, we have the search  box, of course. We have to have a search box on the search page. Below the search box,  we have a couple of so-called search verticals. So everything makes me search through everything.  People is a people search experience where I look for people in my organization. That  one has improved since the last SharePoint version. And then we have a new one called  conversations. That's where we search through the new social aspects of SharePoint. So we  have conversations and we have community feeds and even people will surface there.  We also have a new video search experience. That one has the ability to search in videos  in a different way. We have different refiners there and you can play the videos, etc. And  there's a fifth search vertical that's hidden here. It's called reports. So if you have  Excel data or other types of data you want to report on, you can configure those and  then you can have a place to search for all that data. Okay, then below the search verticals,  we have the so-called personal favorites. So when I did this search in the past, I clicked  on this result here and that's the personal favorite. So that's a feature that allows  me to run the same search over again and easily come back to what I've seen before. Then,  of course, we have the results. That's the main part of the search page. And each of  these results are shown here and it's easy to see what's the PowerPoint, what's the conversation,  what's the video, etc. And as I hover over this, you can see that there's a hover panel  here. And everything you see on this page is built using HTML5 and JavaScript and CSS.  So this is a big change since the previous SharePoint where it was a lot of XSLT and  XML transformations beneath what you're seeing. Here, everything is opened up and it's a lot  easier for you guys to change this to your liking. Okay, so I'll just do another search  here. Packaging project history. So here, we can have a more look at a Word document  here. So as you'll see here, it says on the upper right-hand corner the number of times  someone looked at this document. So I can immediately see that this is a pretty popular  document. It's a bit of open 57 times. I also have a preview of this document here. So I  can zoom in, scroll, move from page to page, etc. in this pane here. If I had a larger  screener solution, I would see more of this document. But it's easier for me to recognize  whether this is what I'm looking for or not. Then I also have the different sections of  the document in the middle here. So if I click on one of these, I'll go into that section  in the document. So I'm now starting the Word app here and I'm immediately getting into  that section. So if this was the section I was looking for, I could very easily move  from a query into the section in question. Okay. What you also see is that at the bottom  here of the hovercard, I have a number of actions. So this makes me capable of immediately  acting on this document so I can open it in Word, win an edit, I can do other types of  actions. We'll have a further look into those later. Okay. In PowerPoint, we have the same  kind of preview. When that's done loading, we can go through here. We'll see the animations  are similar to what they are in the real client PowerPoint. And that's a great improvement.  Okay. I'll do another query for you. So for Excel, we've taken a slightly different approach.  For Excel, we don't show you the whole page in Excel, but we instead show the name tables  and the graphs. So here I can quickly look through the graphs and it's usually pretty  easy to read out the numbers and so on. So often I can find exactly what I'm looking  for without even opening this Excel in the Excel client. What I also want to comment  on here is these number of views here, they say something about how popular this document  is. And that's part of our ranking algorithm now. So if a document is very popular and  clicked a lot, that makes it go up in the result list for me. Okay. Next, I'm looking  at finding PowerPoint presentations for product overview. So product overview. And at least  within Microsoft, we call those decks. So that's a generic word for a PowerPoint presentation.  So what's going to happen if I type in product overview decks here? Well, in the past, I  would just search and then get results back that have all those three words in them. So  anything with product, overview and deck. And that's not really what I'm looking for.  I don't care whether the word deck is in this deck I'm looking for. I just want the deck.  So what's going to happen? What happens is that we have a query rule here. And that  query rule understands that decks is a magic word or a action word that I'm using to signal  that I'm looking for PowerPoints. And therefore, what I get up at the top here is exactly PowerPoint  presentations for product overview. So none of these PowerPoints here need to actually  contain the word deck, but they're still shown in my results. And that's a great improvement  for trying to understand the intent of the user. So we're going to have a little bit  of a look at query rules because that was an instance of a query rule. And if I search  for query rules here, I have a so-called best bet here, which is kind of the best suggestion  for a hit on this query. And that's explaining what the query rule is. So a query rule is  part of what we call our intent system. So we're trying to understand what is it that  the users are actually looking for. The first example of a type of query rule is when you're  looking for something with a particular keyword. So if you're typing in deck, it's because  you want documents of that result type. It's not because you want documents with that word  inside it. So that's one type of query rule that we support, where we have action terms.  And whenever you do that, what we can do is we can show you results of a particular type  or of a couple of types. And we can also then do the query and ignore that action term.  So that's the way of acting on that kind of query. Another type of query we have is if  I'm looking for the department name of someone, I type in their name. And whenever I type  in a name, our system will recognize that as a named entity from the SharePoint user  profile store. And then it will show people with that name because that's probably what  I'm looking for. I don't need to find all the documents containing that name. That might  sound like a very simple query rule, but this also applies to other types of entities. So  if you have a product database, for example, you can set that database up as a taxonomy.  And whenever your query is a hit towards your product database, you can provide a specialized  product experience. And you can show products, products that are related, etc. to the user.  So that's also a sort of a whole new type of behavior in the system that we added. A  third example is usage-based query rules. So before Microsoft was launching or at the  time we were launching Microsoft Surface, Surface was a very popular query in our video  search. And based on that behavior, whenever somebody searched for Surface, we would show  videos in the other verticals as well because we knew that whenever someone searched for  that, they were likely looking for a video of this. So just based on previous user behavior,  we can also have query rules that show different types of content in those cases.  Okay. So that's really the first demo I wanted to show you. I hope I succeeded in showing  you that we sort of have a fresh new dynamic search experience based on HTML5, JavaScript,  CSS. There are lots of pieces here, contents, horror panels, refiners, counts, I actually  forgot to say. In the refiners you saw, it was all text and no counts. We also support  showing to the user that there are 117 Excel documents and 34 Word documents, for example.  And that's just a small change to the display template and then you add that information.  Our user research showed before we released this that most users didn't actually use that  information but that might be different in your case and with your customer, of course.  So feel free to change that. The information is available. So by having a search box on  all SharePoint pages, information is a lot easier available than before. The personal  favorites is a good way of coming back to what you've seen before and the different search  verticals provide you with different search experiences. And we also looked at how you  could drill into a particular section in the document very quickly to find what you're  looking for. Okay. So that was sort of the basic search experience pretty quickly. Yeah,  actually, there's one thing I want to show you more there. If I search for a person in  my company here, Sarah Davies, it does as I explained about query rules. It identifies  this as being a person and then it shows that there is a person called Sarah Davies here.  And this is like a teaser to move me over to a people experience. So by clicking here,  I'm sent over to the people experience. So now I'm in the people search and I can search  for other people or other things here. So let's say I'm looking for a folk in the signs.  Now since I'm in the people search vertical, I have sort of indicated that I'm looking  for people here. And some people, they actually update their SharePoint user profile. How  many update their SharePoint user profile here? A couple of people. Okay. How many updates  are linked in profile? A couple more people. Good. So my point here is that people don't  always update their SharePoint profile, unfortunately for us. But we have to relate to that. So  when I search for folk in the signs here, I get a number of hits down here with people  that have that in their profile. But I also get a result block here with people that have  actually written about this topic. So if I hover over Alex Darrow here, I can see he  has written some documents and PowerPoints with those terms in the title. So then it's  kind of obvious for me that, yeah, he actually works in folk in the signs. Even though he  hasn't updated his user profile, which frankly, not that many people actually do in SharePoint,  they have enough with updating the LinkedIn profile. Or their Facebook or whatever, somewhere  else at least. Okay. And then if I just show you one more thing here, marketing. When I  first did this demo, I had to type in marketing video to find a marketing video. But as I  was practicing earlier, I sort of told the system that when I search for marketing, I  often want to show a video. So here I can click through two videos. And this is the  video experience. And here I can click to play a video and I can have different refiners,  etc. that are relevant for a video. But what I think is interesting for you guys is that  this whole video vertical here was created by a team that's not part of our team. And  this video vertical could have been created by anyone, any developer, just using Share Point 2013 and installing that vertical on top of the existing out of the box solution.  So this one is shipped out of the box. But it could have been something that someone  sold as a SharePoint app or gave their customer as part of their work. So this is the kind  of solutions you can easily provide to your company or to your customers by just using  extensibility mechanisms we have. Okay, and then I am back here again, or here actually.  And the next thing I thought I'd show you a little bit always, sort of how Search Not  Only is a feature of its own, but is also hidden a bit behind the scenes for a number  of other SharePoint features. So if we go here and look at this, if I hover over this PowerPoint  here, I can click on Follow and that's part of our social notification system. And it  says that I am now following this document. I could also click on View Library here and  that's going to take me into the document library feature of SharePoint. So this is  where all the documents that are in that same folder are stored. And that's a pretty useful  feature actually because whenever you get the hit, you might also be interested in related  documents. So just clicking on View Library will take you to that folder. It's kind of  a country view maybe, but it's also very useful. And inside here, we now have a full real  good search solution inside the list in the previous SharePoint release. When you did the  search in the list, you only searched the titles. And now we actually index everything  in these documents and also search the contents and all the metadata. And this is where I  can show you an example of what we call upscoping. So now I just made a search within this library.  If I click here, I'll search more folders. If I click again, I'll search the entire site.  And if I click even once more, I'll search my entire company. So that's why I'm doing  what we call upscoping. So searching wider and wider in the amount of data we have. Okay.  Then there's something called News Feed. So this is where new SharePoint social features  are hidden. And here I can look at documents where I've been mentioned. And so when all  of this is actually driven by search. So for example, there's a trending tag here. If I  click on Product Development, there's a trending tag. These are conversations related to that  tag. If I query, let's see here, if I do a query for new to marketing, I can get some  different types of results here. Community site is a new type of site template in SharePoint.  So that's for setting up communities with discussions and forums and so on. I can also  go to my News Feed here. Let me click. And if I look here, I'm following a number of people  and documents. If I look at the documents I'm following, first of all, you'll of course  see the one I clicked follow on earlier, as well as a number of other documents. But you'd  also see some suggested documents to follow. And this is also something that's driven by  our search technology. These are recommendations similar to what Amazon shows you when you  buy something. They say other customers that bought this, they also bought this. So that's  what you get here. Other users that are following these documents or have looked at similar  documents or have other things in common with you, they look at these documents. So that's  a recommendation from our side. And that's really an important part of the new recommendation  system. So just summed up, search is not only search, but it's also showing up in a number  of other places like list search, social experiences, and recommendations. And then I want to tell  you a little bit about the underlying architecture for search and share points. So on the content  side, we obviously have to get content into our search index. So we crawl content. There's  been a number of improvements here for how we crawl so we can crawl quicker and more  at the time, etc. But it's all about crawling all your SharePoint content, all your files,  all your HTTP servers, your notes, databases, exchange, etc. And I guess the biggest new  feature is the so-called continuous crawl that will give you very high freshness on  your data, meaning from the time somebody actually changed the SharePoint document until  it's that changes indexed is as low as possible. In the content processing module, we look  at one-on-one document and we break them up. We figure out what sort of language this  document is in. We do spell checking, send them an expansion. We do lots of things there.  And we have a call out there. So for a developer, you can make a call out your own code and  add some logic to that document extraction. In the analytics processing component, there  we look at many documents at the same time. So it's a place where we look at the links  between pages to do page ranking. And we look at the clicks done by users in the front  end and we aggregate all that data and send it into the index. And then what I call the  index here or the search core is really a mix of what we used to have in our different  search offerings in SharePoint 2010. So in SharePoint 2010, there were three search offerings.  Then there was sort of a free, freely available, at what's called SharePoint Foundation, pretty  simple search solution. Then we had the built-in search that came with SharePoint and we had  fast search for SharePoint 2010. And we took all of those things and sort of picked the  best from each of them and put into a new indexing component here. And that's where  we index the data. So whenever we process the document, we take all those words, put  in an inverted index. And when someone types in a query, it'll go through the query processing,  where we again do synonym expansion. So if you type in car, you also want to get hits  for cars or vehicle or similar terms. And then we send that query to the index. And  in the index is where we return a list of documents for the user to see. There's a component called  Web Frontend here. So that's the frontend. And there's a public API there, so it's possible  to create your own client-side solutions using CSOM or REST OVData. Or you can just use the  out-of-the-box solution we provide. So when it comes to search as a development platform,  because some of these pieces aren't really relevant for you, I guess. If you can't change  it or add to it, then why should you care? So here I tried to list some of the things  that is, I think, relevant for you. On the content side, it's always relevant to know  how you can get the content into your system. So you want to know about what out-of-the-box  connectors are available or what custom connectors are available, what third-party connectors  you can buy if your customer has a special need or has special content sources, and how  you can set up the crawls and how these things work. On the content processing side, we have  this new mechanism for a web service call-out. So that allows you to add your own logic,  add your own code, help the system to get more information out of the documents you  see. We also do have a link there to your taxonomy, your product databases, et cetera.  So if you set up a database of product IDs, we can use that and extract those products  with the documents. So whenever you do a search, you can later refine them, only find documents  that actually refer to a particular product, et cetera.  In the index itself, the flexible index schema is perhaps one of the things that's most relevant  to customize. So it's about how we map what is crawled from the content side into the  actual indexing structures and how those indexing structures are surface to the user. There's  also the opportunity to add your own relevancy model. I'll talk a bit about that later if  I have time for it. But then we also have query rules. And I showed you some of the  out-of-the-box query rules, like when I typed in deck, I got PowerPoints. And we'll have  a look at an example how we can create a query rule of our own and what you do with that  one. And then, of course, on the consumer or on the sort of running queries, it's possible  to integrate different types of devices on top of our SharePoint here.  But first, let's have a look at display templates. So this is pretty similar to the search I  did earlier. And on this page, on the left-hand side, we have a number of refiners, and they  are all built on display templates. So the result type and the author refiner, those  are two very simple text-label refiners. But the modified date is a more advanced one,  which is a graphical histogram showing the actual distribution of changes for these documents.  So it's possible for you to add whatever refiner you want here. You could add refinement on  some other value, or you could create your own visualization of the existing values,  et cetera. So there are lots of opportunities to make this search experience the way you  want it. Then the search box and the verticals, those are also two display templates. So  if you like, you can make the search box look totally different and the same with the verticals.  They don't have to look like that. You can definitely change their look and feel. The  personal favorites is a display template. Each of the different types or results, like  a video or a community site or a conversation or a PowerPoint, those are all display templates,  so you can change each one of them. And then maybe the most interesting part is the hover  panel here, another display template. So there's a hover panel display template for PowerPoint.  And everything in here you can take away or you can add your own actions, do things like  that to customize this. And that's really a great opportunity to customize the search.  And that leads us into the next section on how to actually extend the search. So we  will start out with result types. So result types are what you would intuitively understand.  So PowerPoint is a type of result, Word is a type of result, VCO is a type of result.  What we can do is we can take a copy of one of the existing ones and then we can modify  it. So this PowerPoint here, we can change this one and we can say that, okay, so it  should match a Compton type of PowerPoint, but we could also add other types of conditions.  So we could say it only matches that one if it's assigned to equals and then something  here. So I can add some conditions here and then in those special circumstances, this  is the result type that we're going to use. And so what should this look like? And what  I'm referring to here is simply, as you see here, URLs in the master page gallery. So  it's a JavaScript file that renders this one. So by just adding a result type and referring  to a different JavaScript file, I can get a totally different rendering of some new  type of result. And it can be in the combination of managed properties that are indexed. So  it's definitely something that's easy to add to. Okay, so that's the result type. I also  want to show you something about query rules. So before I do, I want to do a test here.  In Microsoft at least, videos are called Flix. So if I search for marketing Flix, I would  hope to see some videos. Unfortunately, I don't see any. And it's probably because Flix is  a word here that's not in the videos. So what I want to do is I want to create a query rule  that actually makes sure I get to see those videos if I do that kind of a query. So we'll  go into here. There is actually a video query rule. So I'll copy that one as a starting  point. And then we'll see how we can actually make this one do something interesting. So  I'll just call this video Flix. And I'll say that if this one matches Flix or Flix, if  the query contains any of these phrases, then I want to see a video. So I say the start and  the end can match these queries. And if that's the case, then the match should be assigned  to a so-called action term and the unmatched things, whatever else I typed in, should be  the subject terms. Okay, so that's good. And then what I actually want to do is add a result  block here. So I want to rank the result block showing videos for, or I can actually edit  this one, because this came from copying the old video rule there. So I'm saying this one  is Flix at MDC for subject terms. And then this is the query I'm sending forward. So  remember, action terms is assigned to what's recognized. And the rest is assigned to subject  terms. So now I'm just sending the subject terms, the rest of my query, into the real  query here. And it's going to be against local video results. And there are some other settings  and options you can have here. But in a sense, this is all I need to have a useful query  rule. And then this query rule, then hopefully will give me videos back once it's saved and  everything is set up. Okay, so if we go back here and do the same query over again, there  we are, Flix at MDC for marketing. So that's a new query rule. And it was pretty easy to  configure. And it takes me over to my video vertical. So imagine now this is your video  search. And then this is what you would be seeing here. So it's really a way to get  users into other search experiences the way we did it here. We could also have just ignored  having a link there and just put in some videos without having the user noticing that there's  something special here. And that's another way of using query rules. You actually can  use them to add sort of the best bets, the usual best hits to your queries. You can add  whole blocks of results, just single results, you can have those things at the top or ranked  in with the rest. And you can add this kind of links to other search experiences. And  when it comes to the conditions we can have here, I mentioned earlier that there are different  types of query rules. So some have this kind of action term. But the most powerful ones  are really those where you back them up with a dictionary. So we have a dictionary of all  your employees, all your products, whatever. And that's when you actually trigger these  query rules. And you can also have rules that are so called extra rank rules where you reorder  the results when this happens. Okay, but that was a quick example of how you can extend  search. So hopefully I showed you that using the result types and the display templates  and query rules, you can build your own intent-based solutions. There's another part here I should  mention. I'm not going to demo that one now, but there's something called a content search  web part. And that's a web part where you add a query. And then whenever the page renders,  that query is run and something is rendered. And that's extremely powerful to create portals  or product solutions. And so when, well actually I might have, yeah, here I have a, okay, I  am going to show you. So this is Contoso Superstore. And this whole page is driven by different  web parts that run queries. So there's a taxonomy here of products. And whenever I am in the  menu, I'm using the taxonomy to render the menu. And so this is the front page of this  site. So we get favorites driven by queries, recommendations, et cetera. And if I click  on cameras or cameras as well here, I'll see this is all driven by search. And that means  someone just have to maintain the product database. And there is, I think it's only  four pages defined to drive a whole product experience here. So it's a really powerful,  yet simple way to market your products and to create a product experience. So that's  the content search web part where it's simply, there's no query by the end user, but there's  a query by the patron based on the context you're in. Okay, then a little bit about relevance.  We are very dedicated towards relevance. Relevance is how relevant is this document  to this query? And which document should I show you? Because most users, they don't  bother paging between the first couple of pages in the search results. I mean, have  you ever paged to page 10 on Google? I likely not. Well, how many have I not? Okay, so everyone  tried a little bit. But we don't usually do that. And we have numbers to show that it's  really important what we show on that first page. So what we've done now is we have worked  a lot on this. Now we take more into account how close the terms are to each other. So  whenever you type in something, you're not really interesting. If you're searching for  a black cat, you don't want the document where black is on page one and cat is on page 17.  It doesn't matter. That's not what you're looking for. So we need to take proximity  over into account and we need to take recency of documents. So newer documents are more  likely to be what you're looking for, etc. There's a lot of work going on into this and  we've opened this up as well. So our configuration of ranking is an XML file. And if you like,  you can change that file. That's maybe for the more advanced, but it's still something  that a lot of customers want to do because they want to tweak relevance to the maximum.  They want their employees to get the best results or they want their customers to get  the best products or the products that they actually want to sell. So the order or results  that's really important and it's a major area where developers can contribute with customized  solutions. Okay. Have anyone read the article in the developer that my colleague Ergin and  I wrote? No, good. Good. Because then I get to tell you a bit about this example. That's  great. So in SharePoint, in all the document libraries, there's a rating feature. So anyone  can click on a star from zero to five, giving a rating to each document. And that's fine.  And we also index this information. It's actually in the so-called retrievable managed property  called average rating. Retrievable means that at the time of the query, we can send that  back from the search engine and it can be presented to the user. Retrievable does not  mean you can query for it. So you can't ask for documents with a certain rating just because  it's retrievable. Then it has to be queryable or, yeah, queryable. It's also queryable.  This is managed property, by the way. However, what we want to do now in our example here  is we want to show that rating along with the word documents in the result set. So we  want every document to get this rating available. So how do we do that? Luckily, that's kind  of one of the extensibility scenarios that we have designed for. So what we do is the  first thing is we modify the word display templates and we make sure that we get that  data because we're not asking for that managed property because we're not showing it. So  we have to put in the display template that please ask the search engine for this average  rating managed property. So we just copy the existing word display template and we modify  it. And if you look in that XML, it looks like this. So we've added average rating here  as the managed property we want to get in addition to all the others. So there's, as  you can see, there's a large number of things we are getting. Title, description, editor,  last modified time, collapsing status, document ID, he title, summary, file extension, etc.  So we get a lot of data, but we add one more thing here. Then the next we want to do or  have to do is to make sure we render this rating. So now we made sure we actually ask  for it at query time. So we want to render it. And the way we do it here in this example  is we include a JavaScript file from our word display template, which is also a JavaScript  file. We just include one that contains a method, as you can see at the bottom here,  with average rating, rating HTML, sorry, that will output some HTML. And this CTX context.currentItem.AverageRating,  that's how I refer to a managed property for the current result we're at. So when I add  this line here, this is going to be run for every result in on that result page. And then  rating HTML is invoked 10 times typically. And we get some additional HTML out of this.  And that's really all it takes. So the function we're using to render here is like this. So  we just get the average rating as a number, as an input, and we produce a number of full  and empty stars, depending on that. And in the end, it's going to look like this. So  this is how it typically looks. And then we get these stars at the bottom. So that's really  all it takes for you guys to customize your result page with some more information. And  maybe average rating is not what your company wants or needs. But typically there are other  needs that people want to extend their search experience with. So really, what I hope I  managed to convey to you is that the search experience is a pretty dynamic, interactive,  and actionable thing now. I showed you how search powers some of the core experiences,  so social, and others. And also, we looked at the bit of extensibility. It's never been  easier or more powerful than it is now. So I suggest you go and have some fun with extensibility.  Okay. Any questions? You guys been awfully quiet so far. No questions? Okay. Then I'll  just say have a nice day. And if you actually have questions, feel free to approach me later  and I'll be happy to answer them. Thank you.
Helge_Grenager_Solheim_-_SharePoint_2013_Search_-_What_s_new_and_cool-68226774_0_107.png Helge_Grenager_Solheim_-_SharePoint_2013_Search_-_What_s_new_and_cool-68226774_108_467.png Helge_Grenager_Solheim_-_SharePoint_2013_Search_-_What_s_new_and_cool-68226774_468_1895.png Helge_Grenager_Solheim_-_SharePoint_2013_Search_-_What_s_new_and_cool-68226774_1896_3143.png Helge_Grenager_Solheim_-_SharePoint_2013_Search_-_What_s_new_and_cool-68226774_3144_4055.png Helge_Grenager_Solheim_-_SharePoint_2013_Search_-_What_s_new_and_cool-68226774_4056_4955.png Helge_Grenager_Solheim_-_SharePoint_2013_Search_-_What_s_new_and_cool-68226774_4956_7103.png Helge_Grenager_Solheim_-_SharePoint_2013_Search_-_What_s_new_and_cool-68226774_7104_7907.png Helge_Grenager_Solheim_-_SharePoint_2013_Search_-_What_s_new_and_cool-68226774_7908_9995.png Helge_Grenager_Solheim_-_SharePoint_2013_Search_-_What_s_new_and_cool-68226774_9996_11639.png Helge_Grenager_Solheim_-_SharePoint_2013_Search_-_What_s_new_and_cool-68226774_11640_12119.png Helge_Grenager_Solheim_-_SharePoint_2013_Search_-_What_s_new_and_cool-68226774_12120_14735.png Helge_Grenager_Solheim_-_SharePoint_2013_Search_-_What_s_new_and_cool-68226774_14736_14843.png Helge_Grenager_Solheim_-_SharePoint_2013_Search_-_What_s_new_and_cool-68226774_14844_18071.png Helge_Grenager_Solheim_-_SharePoint_2013_Search_-_What_s_new_and_cool-68226774_18072_18611.png Helge_Grenager_Solheim_-_SharePoint_2013_Search_-_What_s_new_and_cool-68226774_18612_22247.png Helge_Grenager_Solheim_-_SharePoint_2013_Search_-_What_s_new_and_cool-68226774_22248_22331.png Helge_Grenager_Solheim_-_SharePoint_2013_Search_-_What_s_new_and_cool-68226774_22332_26207.png Helge_Grenager_Solheim_-_SharePoint_2013_Search_-_What_s_new_and_cool-68226774_26208_26363.png Helge_Grenager_Solheim_-_SharePoint_2013_Search_-_What_s_new_and_cool-68226774_26364_29747.png Helge_Grenager_Solheim_-_SharePoint_2013_Search_-_What_s_new_and_cool-68226774_29748_31835.png Helge_Grenager_Solheim_-_SharePoint_2013_Search_-_What_s_new_and_cool-68226774_31836_32255.png Helge_Grenager_Solheim_-_SharePoint_2013_Search_-_What_s_new_and_cool-68226774_32256_33527.png Helge_Grenager_Solheim_-_SharePoint_2013_Search_-_What_s_new_and_cool-68226774_33528_33647.png Helge_Grenager_Solheim_-_SharePoint_2013_Search_-_What_s_new_and_cool-68226774_33648_34175.png Helge_Grenager_Solheim_-_SharePoint_2013_Search_-_What_s_new_and_cool-68226774_34176_34223.png Helge_Grenager_Solheim_-_SharePoint_2013_Search_-_What_s_new_and_cool-68226774_34224_34403.png Helge_Grenager_Solheim_-_SharePoint_2013_Search_-_What_s_new_and_cool-68226774_34404_34475.png Helge_Grenager_Solheim_-_SharePoint_2013_Search_-_What_s_new_and_cool-68226774_34476_34811.png Helge_Grenager_Solheim_-_SharePoint_2013_Search_-_What_s_new_and_cool-68226774_34812_35003.png Helge_Grenager_Solheim_-_SharePoint_2013_Search_-_What_s_new_and_cool-68226774_35004_36503.png Helge_Grenager_Solheim_-_SharePoint_2013_Search_-_What_s_new_and_cool-68226774_36504_36575.png Helge_Grenager_Solheim_-_SharePoint_2013_Search_-_What_s_new_and_cool-68226774_36576_36827.png Helge_Grenager_Solheim_-_SharePoint_2013_Search_-_What_s_new_and_cool-68226774_36828_39323.png Helge_Grenager_Solheim_-_SharePoint_2013_Search_-_What_s_new_and_cool-68226774_39324_39383.png Helge_Grenager_Solheim_-_SharePoint_2013_Search_-_What_s_new_and_cool-68226774_39384_44219.png Helge_Grenager_Solheim_-_SharePoint_2013_Search_-_What_s_new_and_cool-68226774_44220_47687.png Helge_Grenager_Solheim_-_SharePoint_2013_Search_-_What_s_new_and_cool-68226774_47688_50171.png Helge_Grenager_Solheim_-_SharePoint_2013_Search_-_What_s_new_and_cool-68226774_50172_50423.png Helge_Grenager_Solheim_-_SharePoint_2013_Search_-_What_s_new_and_cool-68226774_50424_53123.png Helge_Grenager_Solheim_-_SharePoint_2013_Search_-_What_s_new_and_cool-68226774_53124_53267.png Helge_Grenager_Solheim_-_SharePoint_2013_Search_-_What_s_new_and_cool-68226774_53268_54275.png Helge_Grenager_Solheim_-_SharePoint_2013_Search_-_What_s_new_and_cool-68226774_54276_54935.png Helge_Grenager_Solheim_-_SharePoint_2013_Search_-_What_s_new_and_cool-68226774_54936_59543.png Helge_Grenager_Solheim_-_SharePoint_2013_Search_-_What_s_new_and_cool-68226774_59544_60551.png Helge_Grenager_Solheim_-_SharePoint_2013_Search_-_What_s_new_and_cool-68226774_60552_60611.png Helge_Grenager_Solheim_-_SharePoint_2013_Search_-_What_s_new_and_cool-68226774_60612_60839.png Helge_Grenager_Solheim_-_SharePoint_2013_Search_-_What_s_new_and_cool-68226774_60840_60899.png Helge_Grenager_Solheim_-_SharePoint_2013_Search_-_What_s_new_and_cool-68226774_60900_61043.png Helge_Grenager_Solheim_-_SharePoint_2013_Search_-_What_s_new_and_cool-68226774_61044_61127.png Helge_Grenager_Solheim_-_SharePoint_2013_Search_-_What_s_new_and_cool-68226774_61128_61235.png Helge_Grenager_Solheim_-_SharePoint_2013_Search_-_What_s_new_and_cool-68226774_61236_61823.png Helge_Grenager_Solheim_-_SharePoint_2013_Search_-_What_s_new_and_cool-68226774_61824_61955.png Helge_Grenager_Solheim_-_SharePoint_2013_Search_-_What_s_new_and_cool-68226774_61956_62015.png Helge_Grenager_Solheim_-_SharePoint_2013_Search_-_What_s_new_and_cool-68226774_62016_62063.png Helge_Grenager_Solheim_-_SharePoint_2013_Search_-_What_s_new_and_cool-68226774_62064_62243.png Helge_Grenager_Solheim_-_SharePoint_2013_Search_-_What_s_new_and_cool-68226774_62244_67259.png Helge_Grenager_Solheim_-_SharePoint_2013_Search_-_What_s_new_and_cool-68226774_67260_68735.png Helge_Grenager_Solheim_-_SharePoint_2013_Search_-_What_s_new_and_cool-68226774_68736_70415.png Helge_Grenager_Solheim_-_SharePoint_2013_Search_-_What_s_new_and_cool-68226774_70416_70847.png Helge_Grenager_Solheim_-_SharePoint_2013_Search_-_What_s_new_and_cool-68226774_70848_71447.png Helge_Grenager_Solheim_-_SharePoint_2013_Search_-_What_s_new_and_cool-68226774_71448_72935.png Helge_Grenager_Solheim_-_SharePoint_2013_Search_-_What_s_new_and_cool-68226774_72936_73037.png