-->

Friday, 17 February 2012

FAST Search Server not Configured to the Sharepoint 2010

When I was configuring the FAST search server on my SharePoint, it got configured successfully as a standalone type. But when I tried to create the Search Service Application, to my surprise, the options to create a "FAST Search Connector" and "FAST Search Query" were missing. After Googling a bit, I realized that FAST search was installed but it was not connected to the existing SharePoint server. Even though the Sharepoint Farm properties were correctly configured during FAST installation.

After a little while I realized that License that i have was for the SharePoint Standard, and this features are included in the SharePoint Enterprise. So I was thinking to install the SharePoint again, But luckily there is an option to change your SharePoint license type from SharePoint Standard to SharePoint Enterprise.

  • Go to Central Administration -> Upgrade and Migration  and click on Enable Enterprise Features.
  • Select the radio button for the Enterprise and it will ask for the license key.(Make sure you have the license key for the SharePoint Server Enterprise)
  • Type in the Key and click OK. It will enable all the enterprise features on your SharePoint farm.

If you have new SharePoint farm then you can alternatively re install the SharePoint 2010 with the license key for the SharePoint Server Enterprise. This is pretty important screen :)
FAST Search Server not Configured to the Sharepoint 2010

Complete your installation with the SharePoint Server Enterprise license key and after the successful configuration of the FAST you will be able to see the options of the FAST Search Connector and FAST Search Query while creating a new Search Service Application.

FAST Search Server not Configured to the Sharepoint 2010

The FAST Search Service Application types are not available in a "Basic" installation.  This limitation is specific to the Beta and is planned to be removed for the final release. More information on this link.

Friday, 10 February 2012

Troubleshooting Crawl Issues for SSL Enabled Web Application

Lately I have experienced lot of issues while crawling of SSL enabled web application and wasted almost 2-3 days fixing it. So thought to share the troubleshooting steps on my blog.

Issue 1 : Ignore SSL Warnings

Error message: An unrecognized HTTP status was received. Check that the address can be accessed using Internet Explorer. (WebExceptionStatus TrustFailure The underlying connection was closed: Could not establish trust relationship for the SSL/TLS secure channel.
This happens mostly when we implement self signed certs or certs from untrusted authorities in the web servers. In order to avoid the error message and to successfully crawl contents, make  the following changes in farm level search settings in Central Administration.
  1. Go to Application Management > Search Service Application Settings > Farm Search Administration
  2. Change the setting “Ignore SSL warnings” from No to Yes
Issue 2 : Install the FAST search Certificate
The URL of the item could not be resolved. The repository might be unavailable, or the crawler proxy settings are not configured. To configure the crawler proxy settings, use Search Administration page.
Install the certificate using the following command on the Sharepoint Admin Server
.\SecureFASTSearchConnector.ps1 –certPath FASTSearchCert.pfx –ssaName “FAST Connector” –username "domain/username"

Note : The FASTSearchCert.pfx is created when you install the FAST on the server. You can locate it under <FASTSEARCH>\Data\Data_Security\cert folder. Also on the execution of the command it will ask for the certificate password, It is the password that you entered while configuring the FAST on the server.

Issue 3 : Collection not created
Failed to connect to ame.fantasia.qa:13391,ame.fantasia.qa:13391 Failed to create session with content distributor. Unknown collection 'MyCollectionTest'
This happens when collection specified the SSA is not present in the FAST database. To check if your collection exist you can execute the following command on the FAST server. 
                 Get-FASTSearchContentCollection -Name MyCollectionTest
or else you can create a new collection with the following command 
                  New-FASTSearchContentCollection -Name MyCollectionTest
For me it was not present hence gave me an error. For quick fix, i changed the collection name back to sp. Its the default collection and was already present.

Issue 4 : Access Denied to the Default Content Access Account

Access is denied. Verify that either the Default Content Access Account has access to this repository, or add a crawl rule to crawl this repository. If the repository being crawled is a SharePoint repository, verify that the account you are using has "Full Read" permissions on the SharePoint Web Application being crawled. 
This happens when the content access account does not have "Full Read" permissions on the Sharepoint web application being crawled. You can add a crawl rule to access the repository with specific account.
  1. Go to New Crawl Rule -> add the Url 
  2. Check the radio button for 
  3. Click Ok and start the crawl.
Also make sure there is an entry for DisableLoopbackCheck in the registry. 
If its not present follow the below steps :
  1. Go to command window and type regedit.exe
  2. Navigate to  HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa
  3. Right click on LSA and create a new 32bit DWORD value
  4. Name it as "DisableLoopBackCheck" and modify its value to 1
  5. Close the registry and crawl the content.
 Issue 5 : Error communicating to the server
The crawler could not communicated with the server. Check that the server is available and that the firewall access is configured correctly. If the repository was temporarily unavailable, an incremental crawl will fix this error.
This happens when crawler is not able to connect to the server. Make sure server name is correct. Couple of steps to troubleshoot it
  1. You should be able to ping the server from the server having crawl component. Make sure there is an entry for the server in the host file under c:\Windows\System32\drivers\etc folder.
     Ping <servername>
  2. You should be able to connect to the server using telnet command
    Telnet <servername> <port number>


Adding Filter in the Refinement Panel of the Search Page



Following are the steps to add a refinement in the refinement panel of the sharepoint page.


Extract XML of the Filter Category Definition
we need to extract the xml of the Filter Category Definition from the existing default refinement panel.

A. In your browser, navigate to the results page URL:
       http://SiteURL/Pages/results.aspx
B. On the Site Actions menu, click Edit Page.
C. In the Refinement Panel Web Part, click the edit arrow to display the Web Part menu, and then click Edit Web Part. This opens the Web Part tool pane.
D. In the Refinement section, clear the Use Default Configuration check box.
Adding Filter in the Refinement Panel of the Search Page
E.  In the Refinement section, click the ellipsis (…) button for the Filter Category Definition field.
This opens the Text Entry window for the Refinement Web Part's FilterCategoriesDefinition property. You can modify the XML directly in this window; however, you may find it easier to copy the code to a file.
Adding Filter in the Refinement Panel of the Search Page


Edit the XML in Visual Studio    
Now we need to edit the given xml in visual studio preferably. You will find a filters already present for the Result Type, Site, Author,etc by default. We will try to add our own filter in it.
We will add ‘Content Source’ category filter to it, so that we can filter based on the content source from which the result was crawled.
Scroll to the end of the xml and add the following line before </FilterCategories> tag

<Category    Title="Content Source"    Description="Use this filter to restrict results authored by a specific content source"    Type="Microsoft.Office.Server.Search.WebControls.ManagedPropertyFilterGenerator"    MetadataThreshold="1"    NumberOfFiltersToDisplay="4"    MaxNumberOfFilters="20"    ShowMoreLink="True"    MappedProperty="contentsource" SortBy="Frequency"    SortDirection="Descending"    SortByForMoreFilters="Name"    SortDirectionForMoreFilters="Ascending"   MoreLinkText="show more"    LessLinkText="show fewer"    ShowCounts="Count" />


Save back the edited XMl of FilterCategoriesDefinition in webpart
Copy back the edited xml to the webpart’s FilterCategoriesDefinition property and click ok. Now our webpart is ready to use content source as a filter. But main catch here is that content source property is not retrieved in the ContentCoreResult Webpart without which our filter will be of no use.


Add the column for Content Source
Add the column for “Content Source” in the ContentCoreResult webpart
A.In your browser, navigate to the results page URL:
http://SiteURL/Pages/results.aspx
B. On the Site Actions menu, click Edit Page.
C. In the Content Core Result Web Part, click the edit arrow to display the Web Part menu, and then click Edit Web Part. This opens the Web Part tool pane.
D. In the Core Results->Display Properties section, clear the Use Default Configuration check box.
E. In the Display Properties section, Copy the fetched Properties in visual studio editor
F.  Now add the following line at the end of the document before </Columns> tag and save the webpart properties

<Column Name="contentsource"/>

 Make sure there is an entry for the managed property content source mapped to the crawled property Content Source


Adding Filter in the Refinement Panel of the Search Page

Result
    
Now go to the search site and search for the result, you will be able to see new filter added  to the refinement panel 


                      Adding Filter in the Refinement Panel of the Search Page