Thursday, 28 November 2013

Query Rules in SharePoint 2013

With the help of Query Rules in Sharepoint 2013 without any custom code we can promote a specific result or even change the ranked result by changing the query. Search Expert or the Search Manager of the organization has the freedom and power to change the search experience and adapt it to the organization needs. Defining the right keywords to be matched on the user queries and mapping the conditions with the relevant actions is easy but the process must undoubtedly be well managed. The management of the query rules should definitely be part of your SharePoint 2013 search governance strategy.

A query rule can specify the following three types of actions:
  • Add Promoted Results
  • Add one or more groups of results, called result blocks.
  • Change the ranking of results.

How to Add Query Rule:
Let’s take a scenario where organization is maintaining the list of glossary terms managed in the organization. When we search in google “meaning of activity”, it automatically recognizes that user wants to know the meaning of the word ‘activity’ and it highlights its meaning at top and displays the rest of the results in bottom.

SharePoint also provides this feature using ‘Query Rule’ feature.

SharePoint Crawls - Full, Incremental, Continuous

Full Crawl

Full Crawl of Content source will re index all the content from beginning

Important Points to Consider:
  • If new managed property has been introduced, we need to run Full Crawl of content source     
  • If new crawl rules are created/updated/deleted, Full crawl of content source is required
  • If incremental crawl has been failed
  • If software update or service pack has been installed on the servers
  • Expensive in terms of performance issues

Incremental Crawl

Incremental Crawl of Content source will only process those items which are changed since the last crawl happened.

Important Points to Consider:
  • Most preferred after the full crawl has been done.
  • Does not hamper the performance as it will crawl only modified documents not the entire content source.
  • The incremental crawl will retry items and postpone crawling the item if the error persists.

A limitation with the Full Crawl and Incremental Crawl is we cannot schedule both to execute parallel. For example if the Full Crawl is already running then the Incremental Crawl cannot be triggered until the Full Crawl completes, if you try to Stop Full Crawl then also it is mandatory to finish at least once successful Full crawl before triggering any Incremental Crawls.

So Microsoft has come up with the concept of Continuous Crawl

Continuous Crawl

With Continuous Crawl you can maintain the content index as fresh as possible.               
    More than one continuous crawl can run in parallel
    one deep change will not result in degraded freshness on all following changes

The impact of a "Continuous Crawl" is the same as an incremental crawl.

At the parallel execution of crawls, the "Continuous Crawl" within the parameters defined in the "Crawler Impact Rule" which controls the maximum number of requests that can be executed by the server (default 8).

The Subscription Settings service and corresponding application and proxy needs to be running in order to make changes to these settings

I see the following error when I tried to configure my App Url

Execute the following commands

Get-SPManagedAccount contoso\sp_services
$appPool = New-SPServiceApplicationPool -Name SubscriptionServiceAppPool -Account $account
$serviceApp = New-SPSubscriptionSettingsServiceApplication -ApplicationPool $appPool -name "Subscription Settings Service Application" -DatabaseName "SP2013AppSubscriptionSettingsDB"
$serviceAppProxy = New-SPSubscriptionSettingsServiceApplicationProxy -ServiceApplication $serviceApp

Make sure the below services are started

Perform an iisreset

Configure DNS

Create a forward lookup zone for the app domain name

1.       Verify that the user account that performs this procedure is a local administrator on the domain controller.
2.       Click Start, point to Administrative Tools, and then click DNS.
3.       In DNS Manager, right-click Forward Lookup Zones, and then click New Zone….
4.       In the New Zone Wizard, click Next.
5.       In the Zone Type page, accept the default of Primary zone, and then click Next.
6.       In the Active Directory Zone Replication Scope page, select the appropriate replication method for your environment (the default is To all DNS servers in this domain), and then click Next.
7.       In the Zone Name page, in the Zone name box type the name for your new app domain name (for example, ContosoApps.com), and then click Next.
The New Zone Wizard shows the new domain name for apps.

1.       On the Dynamic Update page, select the appropriate type of dynamic updates for your environment (the default is Do not allow dynamic updates), and then clickNext.
2.       On the Completing the New Zone Wizard page, review the settings, and then click Finish.

'Install app for SharePoint': Failed to install app for SharePoint

Now after enabling the “Developer Site” feature on my site collection, I go ahead and deploy the same App but now this time I get this error

Now this error comes up because I have not configured app catalog or app catalog url

So I need to create a catalog app catalog site first

  1. Go to Central Administration ->Apps
  2. Go to “App Management” -> Manage App Catalog
  3. Select any appropriate web application where you want to create app catalog site and give it a name
  4. Click ok.

But when I click the “Configure App URL” I get the below error.

The Subscription Settings service and corresponding application and proxy needs to be running in order to make changes to these settings

More about this error in my next post over here !

Sideloading of apps is not enabled on this site

I created my first SharePoint 2013 App and tried to deploy it in my SharePoint Farm and it shoot me the below error right into visual studio.

This Error comes up when you try to deploy app to site which is not a developer site. If you create a developer site and deploy the same app, it will work just fine.

But you can just go ahead using the same site by enabling the “Developer Site” feature on your current site collection

Execute the following PowerShell command on SharePoint PowerShell

Enable-SPFeature -Identity e374875e-06b6-11e0-b0fa-57f5dfd72085 -url <siteurl>

Happy SharePointing !

The SharePoint Server Publishing Infrastructure feature must be activated at the site collection level before the Publishing feature can be activated.

While creating a new search site in my site collection I got this error!

You might get this error while creating Business Intelligence Center site


Activate publishing at the site collection level

1.       From the root of your site collection, click Settings Small Settings gear that took the place of Site Settings. > Site settings.
2.       On the Site Settings page under Site Collection Administration, click Site collection features.
3.       On the Site Features page, scroll down to SharePoint Server Publishing Infrastructure and click Activate.

Once publishing features are activated, sub sites inherit them automatically. But, if you built a site before activating the publishing infrastructure, you’ll have to manually activate it for each site.

Activate publishing at the site level

1.       From any page within the site, click (gear icon) Settings Small Settings gear that took the place of Site Settings. > Site settings.
2.       On the Site Settings page, in the Site Actions section, click Manage site features.
3.       On the Site Features page, next to SharePoint Server Publishing, click Activate.

Using Powershell

Execute the below command in SharePoint Management Shell

Enable-SPFeature -Identity PublishingSite -Url http://sp2013labapp01/

Enable-SPFeature -Identity PublishingWeb -URL http://sp2013labapp01/

Happy Sharepointing !

SharePoint 2013 Apps - Troubleshooting Common Errors

Error occurred in deployment step 'Install app for SharePoint': The System Account cannot perform this action

I was trying to deploy the App with the system account I used to configure/setup my SharePoint 2013.

In SharePoint 2013, System Account cannot deploy any app into the SharePoint because of security reasons.

  1. Create/User another account to open the visual studio and try deploy the App
  2. However, Newly created account should have following permissions
    • Add the new account to FARM administrator’s group in Central Administration
    • Created account should be part of local server admin group

Happy SharePointing !!

Target Audiences in SharePoint

Audiences are created as part of the User Profiles service in SharePoint, and a user’s inclusion in an audience is defined by a set of rules that can combine membership in groups or user profile property comparisons.
Audience targeting is use to personalize content display including list or library items, navigation links, or Web Parts. Audience targeting is commonly used to filter news items on Portals. As an example, the Content By Query Web Part (CQWP) supports audience targeting when doing content aggregation.

***Since the Target Audiences field is not defined as a Site Column, the column cannot be added to a Content Type through the SharePoint User Interface

It allows your page to configure itself depending on who is viewing it. For instance you could use Target Audiences to:
§  Show an English language test to one set of people and a Spanish language one to another
§  Show an assessment only to approved people
§  Show a different survey to people depending on their context
§  Show an observational assessment only to instructors or monitors, and not show it to ordinary participants
§  Give different assessments to people in different departments

What to choose for Target Audience?

It’s easiest to choose audiences as SharePoint groups, distribution lists or security groups used in authentication

You can also define rules-based groups of people called global audiences, which gives potential of more sophisticated filtering.