In my previous O365 post, I showed how you can make use of jQuery and jQuery UI to make a search refiner filter template that supports autocomplete on the “other” textbox shown in a multivalued dropdown. With that idea in mind, I imagined it would be pretty easy to use the same concept to create a filter template that shows a dropdown list with possible filter values. And it turns out it is pretty simple, so here are the steps. (more…)
For a customer project I’m on we’re making use of search to surface pages stored in SharePoint Online. On a predefined search results page, refiners make it easier for users to get to the page they are searching for. Refiners are linked to managed search properties and those are linked to crawled properties. In this case, the field crawled is a managed metadata taxonomy field and the values of that field come from a metadata termset. The problem is that this termset is pretty big because it contains all of the countries worldwide. This is what the refiner looks like:
So what if a user is searching for ‘Switzerland’? Hmmm. Well he or she could click ‘Other Value’ and type in what they are looking for. The problem here is that the value needs to exactly match the term and your user might not have a clue about the values in the termset. Countries is doable, but other labels might be harder to guess.
See how I typed in ‘switzer’ and SharePoint is now refining on that value. Items tagged with ‘Switzerland’ do not appear this way, our end-user is left in doubt. So wouldn’t it be nice to have autocomplete on the textbox so the user is guided in their search? That’s exactly what we proposed to our customer and what I will detail in this blog post.
Thinking of a title for this post, I wanted to start with “Inconvenient” because that pretty much describes the essence. Inconveniently enough that trademark has already been claimed by an MVP you might know if you ever search for anything SharePoint related (shout out to Waldek!). Anyways, as inconvenient as this all is, let’s get started. (more…)
I ran into an error with back-up procedures on SP2013. The error in the log file was:
FaultException: Management called failed with System.InvalidOperationException: 'Job failed: Have tried to perform backup/restore operation twice on all in-sync members in cluster SPe6b9ae739be3.0, but none succeeded. Last failure message: Microsoft.Ceres.SearchCore.Seeding.SnapshotTransferException: Could not send chunk ms\%default\gen.0000000000000309.state: Localpath: [0-700> to target BackupDirectoryTarget[directory=\\backupshare\spbr0001\I.0.0,validateTransfers=False]
at Microsoft.Ceres.SearchCore.Seeding.SnapshotSender.SendChunks(ISnapshot snapshot, ISeedSource source, ISeedTarget target, SeedStatus status, Func
1 checkAborted, Int32 targetFragIndex)1 updateProgress, Func
at Microsoft.Ceres.SearchCore.Seeding.SnapshotSender.FirstPhaseTransfer(ISeedSource source, ISeedTarget target, Action
1 shouldAbort)2 original)
at Microsoft.Ceres.SearchCore.Seeding.BackupWorker.BackupWork.DoFirstPhaseWork()' at at Microsoft.Ceres.SearchCore.IndexController.BackupService.ThrowOnFailure(JobStatus status)
at Microsoft.Ceres.SearchCore.IndexController.BackupService.ProgressFirstPhase(String handle)
Searching for this, I found several explanations. They all have one thing in common: it is search related (pretty obvious) and means that search was unable to write to the back-up location.
I seems that search handles a part of the back-up procedure from within it’s own processes. That is, the search service running on SharePoint servers. This means:
– Your search servers need to be able to access the share which is being used for the back-up.
– The service account running search needs to have permissions to write to that share.
– And there should be enough space left, but that’s a no-brainer I hope.
In my case, the second bullet was where my problem was. I granted the service account for search permissions to the share (Full Control), which solved the error. Same is mentioned in this blogpost by Amol Meshe, but he wasn’t sure on the answer.
Ok. This is quite a common scenario. You’ve got your SharePoint site setup which consist of multiple webs, maybe (probably) even multiple site collections. Your user is member of a handfull of sites and get’s tasks assigned. You need your user to stay informed about the tasks he needs to perform. You’ve got a couple of options.
First, I would enable the “mail when task is assigned” option on your task list. This will notify the user a new task has been assigned. Also, with some workflows like approval / feedback request, you get automatic notifications when a task is due. Nice. But your users will start overlooking these mails, or just plain ignoring them. They start requesting an overview of all tasks assigned to them.
Now you’ve got multiple options. Waldek Mastykarz has got a nice post about using the Content Query Webpart to show info from subwebs. Works great, but the content query webpart is limited to the current site collection. Also, it’s proven to be hard for novice users getting the XSL right.
So what about a cross site collection option which is easy to configure? There are a few options, third party solutions probably being the best. For instance, there’s Lighting Tools with their conductor webpart, or Bamboo Solutions with a list rollup webpart (links are not sponsored by the way).
But wait! There’s an out of the box options you might want to consider: search! Using the default webparts (you will need SharePoint Server or Search Server Express for this), you can quite easily list all tasks assigned to the current user. It does require a tiny little bit of coding. Let’s get started!
Ok, so we struggled with a little problem which could be a big problem if you don’t know where to look. Imagine you’ve got your site with a couple of lists, but list items aren’t indexed by the search engine. What to do? This post is meant as a quick guide on stuff you should check.
- First of all, make sure you can search. That’s kind of a different topic which involves checking if your search services are running, your service application is setup properly and there’s a content source which points to your site. For instructions on how to setup search; read the f* manual.Ok, so from this point on, I’ll assume search is working and you’re able to find other stuff on your site. But the stuff you want to find, you cannot.
- At web level, there’s an exclusion setting. Check Site Settings => Site Administration => Search and offline availability. You can exclude an entire site, and manage whether lists with fine-grained permissions are indexed or not.
- You can configure these things with powershell too if you want to. I’m saying this because there seems to be one more setting (the first one) which isn’t shown in the GUI:
- At list level, you can also exclude a list from appearing in search results. Check that in your list settings.
- There’s exclusion in the search service itself. Someone might have set up a rule which excludes your items. Perhaps not that likely, but still worth checking.
- And then for the one that caught me: hidden lists aren’t indexed!If you hide a list (SPList.Hidden), the search indexer won’t crawl it. That kind of makes sence. It would be kind of pointless to hide a list if people would then still be able to find it in search, right?I did read some articles mentioning that your list will still be indexed when it’s already in the search index (so it’s visible and indexed, and then you change it to be hidden). But I’m not sure if that’s true, or why you would use that (resetting the index will mean it’s then omitted from search).
- And finally, make sure your search crawl account can actually access the list. But when you’ve got access rules setup on web application level, even fine-grained permissions won’t mess with that, so it’s not that likely your crawl account won’t have access.
I guess that’s them. Should I remember some more, I’ll add them. Or feel free to post more options in the comments and I’ll include them in the post. Thanks!