Shrink the Content DB Log files

Don't know how many people faced these type of issue - Not able to proceed any thing in the share Point site - Reason "DB space is Full" - How to create the space. what we can compress or not  - so that at least work can continue unless until - administrator doesn't   add new disk or add more space to existing space.

Locate the database that has the log file and use either of the following sets of steps to shrink the transaction log file down to a reasonable size.

Option 1:- Manual Steps :-
Open the SQL Server Management Studio.
  1. Expand the Databases node and expand User Databases
  2. Right-click the database, and click Properties, which opens the Database Properties dialog box.
  3. In the Select a page pane, click Options.
  4. View the current recovery model in the Recovery model list box, which should be set to Full
  5. Click the dropdown arrow in the recovery model section and select the Simple recovery model
  6. Click OK.
  7. Right-click on the same database name and click Task-> Shrink-> Files 
  8. Use the File type drop-down menu and choose Log
  9. You can use the default setting of Release Unused Space or select Reorganize pages before releasing unused space, and you can specify the file size by supplying a value in the Shrink file to option.
           Note: the shrink may take some time depending on how large the file is and how much it has to shrink.
  1. After the shrink completes, change the recovery model back to Full by clicking the recovery model dropdown arrow and selecting the Full recovery model

Option 2:- Using SQL Command:-

use [databasename];
alter database [databasename] set recovery simple;
dbcc shrinkfile (2,0);
alter database [databasename] set recovery full;
for example:

use WSS_Content;
alter database WSS_Content set recovery simple;
dbcc shrinkfile (2,0);
alter database WSS_Content set recovery full;


Happy Coding !!

How to know Site Collection associated with which Content Database

Its like very simple and sweet post - How to know which site collection associated with which content database.

Power Shell Command:-

Get-SPContentDatabase | %{Write-Output "- $($_.Name)”; foreach($site in $_.sites){write-Output $site.url}}

Result look like this:-


We can easily convert the result into Text file using below command:-

Get-SPContentDatabase | %{Write-Output "- $($_.Name)”; foreach($site in $_.sites){write-Output $site.url}} > C:\sitecollections.txt


Result look like this:-


Happy Coding !!

SharePoint Farm Backup Size using Powershell

Farm Backup and restore activity - before performing any operation - Its very important to know the farm size 

To know the Farm size is very easy - Just use below power shell command:-

Power Shell Command

Get-SPDatabase | ForEach-Object {$db=0} {$db +=$_.disksizerequired; $_.name + ” – ” + $_.disksizerequired/1024/1024} {Write-Host “`nTotal Storage (in MB) =” (“{0:n0}” -f ($db/1024/1024))}

The above command gives the result like this:-

Happy Coding !!

SharePoint Get Content Database Size using Powersell

During Migration activity - it become very import to know the size of Content Database - which we are going to migrate.

To know the Content Database size is very easy - Just use below power shell command:-

Power Shell Command:-

Get-SPDatabase | ForEach-Object {$db=0} {$db +=$_.disksizerequired; $_.name + ” – ” + $_.disksizerequired/1024/1024} {Write-Host “`nTotal Storage (in MB) =” (“{0:n0}” -f ($db/1024/1024))}

The above command give the list of all database with size in MB.


Happy Coding !!

How to get Document Library Size SharePoint2013

Get to know the document library size is very easy - just few click away:-

Step 1:- Go to document library -> Library setting -> Modify the All Document View (Default one).


 Step 2:- Select the File Size Property from view

Step 3:- Go to little down in the same page expand the Total Section. Select File Size and Sum in the drop down as highlighted below and click ok.


Step 4:- Result will be available in KB (As I  have 4k+ document in Library)



Happy coding..

Enable MultiValue check box Refiner SharePoint2013 Search

Refiner is used to filtering the search results and limiting search as per filter criteria.

SharePoint 2013 search has OOTB Single Selection and Multi Selection template, by default single selection template is applied to refinement panel.

It pretty easy to enable count and multi selection check box.

Step 1:-
Go the Search Result Page or any search vertical (It should be in search center)

Step 2:-
Edit Page and then edit Right hand side zone with Refinement and click "Choose Refiner" button from refiner property box.


Step 3:-
Refinement Configuration Pop Up will be open. It will show all available managed property which user can used for filtering the records.
L.H.S shows all available  managed property and R.H.S shows all managed property will be available in search result pages for filtering the results.

User can select any property and apply OOTB display template as highlighted below i.e. Multivalue-Refinement Item. and click apply and check in the pages.





Step 4:-
Go to search result verticals and search any thing. Your changed refined will look like :-

Apply any filter with multiple check box and records start filtering accordingly.

Happy Coding..

Enable the Refiner Count in Share Point 2013


The refiner count show number of item exists in Search Result of that type. Its very easy to enable count number in refinement panel.

Its really enhance the search experience also. Don't why Microsoft has put as disable by default.

Enable Count for Refiner
The easiest configuration is to simply turn counts on for all refinements. This is achieved by modifing the Filter_Default.html and Filter_MultiValue.html display templates.

Step 1:-

Basically you need to change the Display Template for the Refinement Filter which is HTML file.
The File is located in the site collections MasterPage gallery folder, /_catalogs/masterpage/Display Templates/Filters


Step 2:-
Filter_Default.html and contains the definition for the refinement item.


Step 3:-
After Download the file Replace the below section:-

From -
To

Step 4:- 
Change the name of the Display Template
 Upload and Save the file at same location with Publish Version.

Step 5:-
Now Configure the Refinement Panel Web part with new defined template



Step 6:- Now Result should show the count in Refinement panel

Happy Coding and Simple Coding !!

Configure Contexual Search

Configure CONTEXTUAL  Search
Before configuring it we need to understand the search basics about Result sources and Query Rules. There are some nice articles available on tech-net which explain these in detail:
Understanding result sources for search in SharePoint Server 2013

https://technet.microsoft.com/en-us/library/dn186229.aspx


Configure result sources for search in SharePoint Server 2013

https://technet.microsoft.com/en-us/library/jj683115.aspx


Once you go through above articles next requirement is to customize your overall search experience and setting up contextual search. I came across a nice thread which explain this in detail



SharePoint 2013 Search Spelling Suggestion

Search Query Suggestions and Search Spelling Suggestions. They are not the same!
Query Suggestions are offered while the user types in the search box. 
Spelling Suggestions are offered only in the search results pages, after the user executes the search. 


Search Suggestion:-



There are four sources for spelling suggestions:

1. The default static spelling dictionaries (static out of the box dictionaries).

2. The default dynamic spelling dictionary (dynamically generated from your content). This     is also called a "content-aligned spelling dictionary".

3. The Query Spelling Inclusions term set (manually entered).
4. The Query Spelling Exclusions term set (manually entered).




Spelling suggestions are based on the closest matches in the default spelling dictionaries and the Query Spelling Inclusions list. 
Only one suggestion will be displayed. It appears that a phonic / sound alike match is being used, so the properly spelled and misspelled words must be similar in length and pattern.
You can’t edit the default static or dynamic spelling dictionaries.

Static dictionaries

The static dictionary is a canned list of words. (Something like the Word dictionaries.)

Dynamically created dictionaries

The dynamic dictionary is created by search as content is indexed. I.e. it's based on words commonly found in your content.

For dynamic spelling correction to work, you should have at least several thousand medium-sized documents. The default settings require that a word occur in at least 1000 documents to be included in the dictionary.

The dynamic dictionary is updated once a night and can be a long running process. (The default timeout is 6 hours!)

Query Spelling Inclusions / Exclusions

1. You must have a configured Managed Metadata Service.
2. The terms must be added to the auto-created Query Spelling Inclusions term set.
3. You manually enter a list of words into an include or exclude list of terms.
4. You can only include single words, not phrases in the term sets.


It may take ten minutes or more for updates to the term sets to show up in search results. (Search Custom Dictionaries Update timer job)

Using Power shell - Change the threshold limit for spelling suggestion (default is 1000 as stated above)


There are two PowerShell cmdlets that can be used to manage the on premises.

    Get-SPEnterpriseSearchQuerySpellingCorrection
    Set-SPEnterpriseSearchQuerySpellingCorrection

Note: These cmdlets are currently only for on premises SharePoint. It looks like Office 365 is set to use the Dynamic dictionary.
You can see the spelling suggestion options using:

    $ssa = Get-SPEnterpriseSearchServiceApplication
    Get-SPEnterpriseSearchQuerySpellingCorrection -SearchApplication $ssa
    


SpellingDictionary = Static / Dynamic

Many of the blogs state that you can choose either Static or Dynamic as the SpellingDictionary value, and that by selecting one of these you would exclude your manually entered Query Spelling Inclusions .

The confusion seems to be around the definitions of the words Static and Dynamic. 
My testing shows that:
  
Dynamic = use the list of words found in your content, plus the Query Spelling Inclusions term set

Static = use the static built-in / out of the box dictionary, plus the Query Spelling Inclusions term set

As an example, I do not have "SharePoint" or "SharePint" in my Query Spelling Inclusions term set, but I do have "corydoras". When I do a search for "SharePint" I get the following only when SpellingDictionary is set to Static: (this word is in the canned dictionary)
    
image

When searching for a term in the Query Spelling Inclusions term set like "corydoras"
 I get results regardless of if SpellingDictionary is set to Static or Dynamic.
    
image

Why don't I get any help when SpellingDictionary is set to Dynamic and I search for "SharePint"?
    
image

Take a look at the TermFrequencyThreshold property. Using the defaults SharePoint would need to find at least 1000 documents that contain the word "SharePoint". 

My testing sample set of documents is not quite that big. If I change it from 1000 to 20 and run the "Spelling dictionary update" timer job then I can start to get useful results from "Did you mean?" for "SharePint". (i.e. "SharePoint" was in at least 20 of my sample documents.)
    
image


Ref:  
https://technet.microsoft.com/en-in/library/jj219497.aspx
https://technet.microsoft.com/en-in/library/jj591607.aspx





Sorting does not Work in the Search Results Web Part in SharePoint 2013

That's very strange, defining the sorting criteria in the search result web part does not seems work. 
I had configured the search query in the Query Builder of the Search Web Part to retrieve the documents or Everything (which is very easy with the query builder). Underneath the sorting tab, I configured it to sort by the creation date.
Here you can see the sorting configuration:


ViewLifeTime Property :- Its give more hit item on the top, if we defined this property in descending order.

Solution Approach:-

Create one more result with replica of same (reason of replica - whatever we are going to define in that result source might not require in other place where we are going to use same result source)

Configuring the sorting in the web part settings did not work, so the next thing I tried was to create a result source with the same query. Creating a result source can be done on the Site Collection itself, so you do not need to go to Central Administration.
Step 1:
Go to Site Setting and select Manage result source under Site Collection Administration section. Click Edit.

 Step 2:
Select Launch Query Builder
Step 3:
Select sorting tab under Build your query section.
Select the sorting criteria whatever you want there and save  it.


After the creation of the result source and sort criteria just configured the search results query builder and specified my result source as the query that needs to be used.
This approach works perfectly, the result source does the sorting, instead of the search results web part.