<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Search Archives - Blog IT</title>
	<atom:link href="https://blogit.create.pt/category/search/feed/" rel="self" type="application/rss+xml" />
	<link>https://blogit.create.pt/category/search/</link>
	<description>Create IT blogger community</description>
	<lastBuildDate>Wed, 04 Aug 2021 22:30:09 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.1</generator>
	<item>
		<title>How To Fix a Degraded Search Index Partition in a SharePoint 2013 farm</title>
		<link>https://blogit.create.pt/miguelisidoro/2018/10/07/how-to-fix-a-degraded-search-index-partition-in-a-sharepoint-2013-farm/</link>
					<comments>https://blogit.create.pt/miguelisidoro/2018/10/07/how-to-fix-a-degraded-search-index-partition-in-a-sharepoint-2013-farm/#comments</comments>
		
		<dc:creator><![CDATA[Miguel Isidoro]]></dc:creator>
		<pubDate>Sun, 07 Oct 2018 19:30:30 +0000</pubDate>
				<category><![CDATA[SharePoint 2013]]></category>
		<category><![CDATA[Search]]></category>
		<category><![CDATA[Index]]></category>
		<guid isPermaLink="false">https://blogit.create.pt/?p=7531</guid>

					<description><![CDATA[<p>Hello, Recently, a customer reported problems with Search in a SharePoint 2013 farm. Instead of showing search results, the following error was being shown: The Problem To diagnose the problem, I opened Central Administration and the Search Service Application page indicated problems with the Index Partition component in the Search Service Application Topology. To further [&#8230;]</p>
<p>The post <a href="https://blogit.create.pt/miguelisidoro/2018/10/07/how-to-fix-a-degraded-search-index-partition-in-a-sharepoint-2013-farm/">How To Fix a Degraded Search Index Partition in a SharePoint 2013 farm</a> appeared first on <a href="https://blogit.create.pt">Blog IT</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Hello,</p>
<p>Recently, a customer reported problems with Search in a SharePoint 2013 farm. Instead of showing search results, the following error was being shown:</p>
<p><img decoding="async" class="alignnone wp-image-7536 size-full" src="https://blogit.create.pt////wp-content/uploads/2018/10/SP2013_Search_Problem.png" alt="" width="512" height="66" srcset="https://blogit.create.pt/wp-content/uploads/2018/10/SP2013_Search_Problem.png 512w, https://blogit.create.pt/wp-content/uploads/2018/10/SP2013_Search_Problem-300x39.png 300w" sizes="(max-width: 512px) 100vw, 512px" /></p>
<h1>The Problem</h1>
<p>To diagnose the problem, I opened Central Administration and the Search Service Application page indicated problems with the Index Partition component in the Search Service Application Topology.</p>
<p><img fetchpriority="high" decoding="async" class="alignnone size-full wp-image-7537" src="https://blogit.create.pt////wp-content/uploads/2018/10/Central_Admin_Index_Partition_Degraded.png" alt="" width="1313" height="145" srcset="https://blogit.create.pt/wp-content/uploads/2018/10/Central_Admin_Index_Partition_Degraded.png 1313w, https://blogit.create.pt/wp-content/uploads/2018/10/Central_Admin_Index_Partition_Degraded-300x33.png 300w, https://blogit.create.pt/wp-content/uploads/2018/10/Central_Admin_Index_Partition_Degraded-768x85.png 768w, https://blogit.create.pt/wp-content/uploads/2018/10/Central_Admin_Index_Partition_Degraded-1024x113.png 1024w, https://blogit.create.pt/wp-content/uploads/2018/10/Central_Admin_Index_Partition_Degraded-696x77.png 696w, https://blogit.create.pt/wp-content/uploads/2018/10/Central_Admin_Index_Partition_Degraded-1068x118.png 1068w" sizes="(max-width: 1313px) 100vw, 1313px" /></p>
<p>To further diagnose the problem, I opened up a PowerShell window (used the option &#8220;Run As Administrator&#8221; to ensure proper permissions) and executed the following commands:</p>
<p>$ssa = Get-SPServiceApplication -Name &#8220;Search Service Application&#8221;<br />
Get-SPEnterpriseSearchStatus -SearchApplication $ssa -Detailed -Text</p>
<p>After execution, the result confirmed a problem with the Index Partition, showing the Index component with the Degraded state. According to <a href="https://docs.microsoft.com/en-us/powershell/module/sharepoint-server/get-spenterprisesearchstatus?view=sharepoint-ps" target="_blank" rel="noopener">Microsoft</a> &#8220;The reason for the degraded status is typically a transient situation related to a restart or network issues&#8221; but from my experience it is not easy to understand why this happens.</p>
<p><img decoding="async" class="alignnone size-full wp-image-7534" src="https://blogit.create.pt////wp-content/uploads/2018/10/PowerShell_Index_Partition_Degraded.png" alt="" width="679" height="343" srcset="https://blogit.create.pt/wp-content/uploads/2018/10/PowerShell_Index_Partition_Degraded.png 679w, https://blogit.create.pt/wp-content/uploads/2018/10/PowerShell_Index_Partition_Degraded-300x152.png 300w" sizes="(max-width: 679px) 100vw, 679px" /></p>
<h1>The Solution</h1>
<p>The solution was composed by two steps:</p>
<ul>
<li>Reset the Search Index &#8211; this operation will clear all index content but will NOT delete any custom managed properties you may have created in the search service application</li>
<li>Perform a Full Crawl on Search Content Source to crawl and reindex all your content</li>
</ul>
<h2>Reset the Search Index</h2>
<p>To reset the Search Index, I went to the Reset Index page in the Search Service Application in Central Administration and clicked the <strong>&#8220;Reset Now&#8221; </strong>button.</p>
<p><img decoding="async" class="alignnone size-full wp-image-7542" src="https://blogit.create.pt////wp-content/uploads/2018/10/SP2013_Search_Index_Reset.png" alt="" width="748" height="212" srcset="https://blogit.create.pt/wp-content/uploads/2018/10/SP2013_Search_Index_Reset.png 748w, https://blogit.create.pt/wp-content/uploads/2018/10/SP2013_Search_Index_Reset-300x85.png 300w, https://blogit.create.pt/wp-content/uploads/2018/10/SP2013_Search_Index_Reset-696x197.png 696w" sizes="(max-width: 748px) 100vw, 748px" /></p>
<p>To confirm the Index Reset, I clicked <strong>&#8220;OK&#8221;</strong> in the popup message.</p>
<p><img decoding="async" class="alignnone size-full wp-image-7541" src="https://blogit.create.pt////wp-content/uploads/2018/10/SP2013_Search_Index_Reset_Confirmation.png" alt="" width="416" height="170" srcset="https://blogit.create.pt/wp-content/uploads/2018/10/SP2013_Search_Index_Reset_Confirmation.png 416w, https://blogit.create.pt/wp-content/uploads/2018/10/SP2013_Search_Index_Reset_Confirmation-300x123.png 300w" sizes="(max-width: 416px) 100vw, 416px" /></p>
<h2>Perform a Full Crawl on Search Content Sources</h2>
<p>After resetting the index, the search index data was deleted and to allow search results to be shown again, we need to perform a Full Crawl on all Content Sources in the farm. To do that, we must go to the Content Sources page in the Search Service Application in Central Administration and for each available Content Sources, select <strong>&#8220;Start Full Crawl&#8221;</strong>.</p>
<p><img decoding="async" class="alignnone size-full wp-image-7550" src="https://blogit.create.pt////wp-content/uploads/2018/10/SP2013_Content_Search_Search_Full_Crawl.png" alt="" width="829" height="340" srcset="https://blogit.create.pt/wp-content/uploads/2018/10/SP2013_Content_Search_Search_Full_Crawl.png 829w, https://blogit.create.pt/wp-content/uploads/2018/10/SP2013_Content_Search_Search_Full_Crawl-300x123.png 300w, https://blogit.create.pt/wp-content/uploads/2018/10/SP2013_Content_Search_Search_Full_Crawl-768x315.png 768w, https://blogit.create.pt/wp-content/uploads/2018/10/SP2013_Content_Search_Search_Full_Crawl-696x285.png 696w" sizes="(max-width: 829px) 100vw, 829px" /></p>
<p><strong>NOTE:</strong> If you have more than one Content Source, let the Full Crawl on the previous Content Source finish before starting to Full Crawl the next Content Source.</p>
<p>After the Full Crawl on all Content Sources finished, I returned to Central Administration and the Search Service Application page to check the Search Service Application status. The page now indicates a healthy status for all Search components.</p>
<p><img decoding="async" class="alignnone size-full wp-image-7533" src="https://blogit.create.pt////wp-content/uploads/2018/10/Central_Admin_Index_Partition_OK.png" alt="" width="1313" height="145" srcset="https://blogit.create.pt/wp-content/uploads/2018/10/Central_Admin_Index_Partition_OK.png 1313w, https://blogit.create.pt/wp-content/uploads/2018/10/Central_Admin_Index_Partition_OK-300x33.png 300w, https://blogit.create.pt/wp-content/uploads/2018/10/Central_Admin_Index_Partition_OK-768x85.png 768w, https://blogit.create.pt/wp-content/uploads/2018/10/Central_Admin_Index_Partition_OK-1024x113.png 1024w, https://blogit.create.pt/wp-content/uploads/2018/10/Central_Admin_Index_Partition_OK-696x77.png 696w, https://blogit.create.pt/wp-content/uploads/2018/10/Central_Admin_Index_Partition_OK-1068x118.png 1068w" sizes="(max-width: 1313px) 100vw, 1313px" /></p>
<p>To confirm that the problem is solved, I ran the same commands previously executed in the PowerShell window.</p>
<p>$ssa = Get-SPServiceApplication -Name &#8220;Search Service Application&#8221;<br />
Get-SPEnterpriseSearchStatus -SearchApplication $ssa -Detailed -Text</p>
<p>After execution, the result confirms that the problem with the Index Partion is solved,<br />
showing an Activate state in the Index component.</p>
<p><img decoding="async" class="alignnone size-full wp-image-7535" src="https://blogit.create.pt////wp-content/uploads/2018/10/PowerShell_Index_Partition_OK.png" alt="" width="677" height="346" srcset="https://blogit.create.pt/wp-content/uploads/2018/10/PowerShell_Index_Partition_OK.png 677w, https://blogit.create.pt/wp-content/uploads/2018/10/PowerShell_Index_Partition_OK-300x153.png 300w" sizes="(max-width: 677px) 100vw, 677px" /></p>
<p>After the above steps, SharePoint sites started returning search results again!</p>
<h1>Related Articles</h1>
<p>If you want to convert your tenant&#8217;s root classic site into a modern SharePoint site, click <a href="https://blogit.create.pt////miguelisidoro/2019/08/27/how-to-modernize-your-tenant-root-site-collection-in-office-365-using-invoke-spositeswap/" target="_blank" rel="noreferrer noopener">here</a>.</p>
<p>This solution should be also valid for SharePoint 2016 and SharePoint 2019. If you want to know all about the new features available in the new SharePoint Server release, click <a href="https://blogit.create.pt////miguelisidoro/2018/11/01/meet-the-new-modern-sharepoint-server-sharepoint-2019-rtm-is-here/" target="_blank" rel="noopener noreferrer">here</a>.</p>
<p>To find a solution to a search crawling issue I recently found in a SharePoint 2016 farm, click <a href="https://blogit.create.pt////miguelisidoro/2018/08/10/sharepoint-2016-problems-crawling-content-and-the-the-crawler-could-not-communicate-with-the-server-error/" target="_blank" rel="noopener noreferrer">here</a>.</p>
<p>To learn why your business should migrate to SharePoint Online and Office 365, click <a href="https://blogit.create.pt////miguelisidoro/2019/07/29/why-your-business-should-migrate-to-sharepoint-online-and-office-365-the-value-offer-part-1/" target="_blank" rel="noreferrer noopener">here</a> and <a href="https://blogit.create.pt////miguelisidoro/2019/07/29/why-your-business-should-migrate-to-sharepoint-online-and-office-365-the-value-offer-part-2/" target="_blank" rel="noreferrer noopener">here</a>.</p>
<p>SharePoint 2019 RTM was recently announced! To learn all about SharePoint 2019 and all its features, click <a href="https://blogit.create.pt////miguelisidoro/2018/11/01/meet-the-new-modern-sharepoint-server-sharepoint-2019-rtm-is-here/" target="_blank" rel="noopener noreferrer">here</a>.</p>
<p>If you are a SharePoint administrator or a SharePoint developer who wants to learn more about how to install a SharePoint 2019 farm in an automated way using PowerShell, I invite you to click <a href="https://blogit.create.pt////miguelisidoro/2018/12/09/how-to-install-a-sharepoint-2019-farm-using-powershell-and-autospinstaller-part-1/" target="_blank" rel="noopener noreferrer">here</a> and <a href="https://blogit.create.pt////miguelisidoro/2018/12/09/how-to-install-a-sharepoint-2019-farm-using-powershell-and-autospinstaller-part-2/" target="_blank" rel="noopener noreferrer">here</a>.</p>
<p>If you want to learn how to upgrade a SharePoint 2013 farm to SharePoint 2019, click <a href="https://blogit.create.pt////miguelisidoro/2019/03/06/how-to-upgrade-from-sharepoint-2013-to-sharepoint-2019-step-by-step-part-1/" target="_blank" rel="noreferrer noopener">here </a>and <a href="https://blogit.create.pt////miguelisidoro/2019/03/06/how-to-upgrade-from-sharepoint-2013-to-sharepoint-2019-step-by-step-part-2/" target="_blank" rel="noreferrer noopener">here</a>.</p>
<p>If you want to learn all the steps and precautions necessary to successfully keep your SharePoint farm updated and be ready to start your move to the cloud, click <a href="https://blogit.create.pt////miguelisidoro/2019/04/08/how-to-install-sharepoint-cumulative-updates-in-a-sharepoint-farm-step-by-step/" target="_blank" rel="noreferrer noopener">here</a>.</p>
<p>If you learn how to greatly speed up your SharePoint farm update process to ensure your SharePoint farm keeps updated and you stay one step closer to start your move to the cloud, click <a href="https://blogit.create.pt////miguelisidoro/2019/05/02/how-to-speed-up-the-installation-of-sharepoint-cumulative-updates-using-powershell-step-by-step/" target="_blank" rel="noreferrer noopener" aria-label="here (opens in a new tab)">here</a>.</p>
<p>If SharePoint 2019 is still not an option, you can learn more about how to install a SharePoint 2016 farm in an automated way using PowerShell, click <a href="https://blogit.create.pt////miguelisidoro/2018/07/28/how-to-install-a-sharepoint-2016-farm-using-powershell-and-autospinstaller-part-1/" target="_blank" rel="noreferrer noopener">here</a> and <a href="https://blogit.create.pt////miguelisidoro/2018/07/28/how-to-install-a-sharepoint-2016-farm-using-powershell-and-autospinstaller-part-2/" target="_blank" rel="noreferrer noopener">here</a>.</p>
<p>If you are involved in a SharePoint upgrade and want to learn more about the upgrade process, click <a href="https://blogit.create.pt////miguelisidoro/2019/02/04/sharepoint-upgrade-upgrading-a-sharepoint-2010-farm-to-sharepoint-2016-step-by-step-part-1/" target="_blank" rel="noreferrer noopener">here </a>and <a href="https://blogit.create.pt////miguelisidoro/2019/02/04/sharepoint-upgrade-upgrading-a-sharepoint-2010-farm-to-sharepoint-2016-step-by-step-part-2/" target="_blank" rel="noreferrer noopener">here</a>.</p>
<p>If you are new to SharePoint and Office 365 and want to learn all about it, take a look at these <a href="https://blogit.create.pt////miguelisidoro/2018/10/17/sharepoint-and-office-365-learning-resources/" target="_blank" rel="noopener noreferrer">learning resources</a>.</p>
<p>If you are work in a large organization who is using Office 365 or thinking to move to Office 365 and is considering between a single or multiple Office 365 tenants, I invite you to read <a href="https://blogit.create.pt////miguelisidoro/2019/01/07/pros-and-cons-of-single-tenant-vs-multiple-tenants-in-office-365/" target="_blank" rel="noreferrer noopener">this article</a>.</p>
<p>If you want to know all about the latest SharePoint and Office 365 announcements from SharePoint Conference 2019, click <a href="https://blogit.create.pt////miguelisidoro/2019/06/05/whats-new-for-sharepoint-and-office-365-from-sharepoint-conference-2019-part-1/" target="_blank" rel="noreferrer noopener">here </a>and <a href="https://blogit.create.pt////miguelisidoro/2019/06/05/whats-new-for-sharepoint-and-office-365-from-sharepoint-conference-2019-part-2/" target="_blank" rel="noreferrer noopener">here</a>.</p>
<p>Hope this can help someone with the same problem!</p>
<p>Happy SharePointing!</p>
<p>The post <a href="https://blogit.create.pt/miguelisidoro/2018/10/07/how-to-fix-a-degraded-search-index-partition-in-a-sharepoint-2013-farm/">How To Fix a Degraded Search Index Partition in a SharePoint 2013 farm</a> appeared first on <a href="https://blogit.create.pt">Blog IT</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blogit.create.pt/miguelisidoro/2018/10/07/how-to-fix-a-degraded-search-index-partition-in-a-sharepoint-2013-farm/feed/</wfw:commentRss>
			<slash:comments>6</slash:comments>
		
		
			</item>
		<item>
		<title>SharePoint 2016: Problems crawling content and the &#8220;The crawler could not communicate with the server.&#8221; error message</title>
		<link>https://blogit.create.pt/miguelisidoro/2018/08/10/sharepoint-2016-problems-crawling-content-and-the-the-crawler-could-not-communicate-with-the-server-error/</link>
					<comments>https://blogit.create.pt/miguelisidoro/2018/08/10/sharepoint-2016-problems-crawling-content-and-the-the-crawler-could-not-communicate-with-the-server-error/#respond</comments>
		
		<dc:creator><![CDATA[Miguel Isidoro]]></dc:creator>
		<pubDate>Fri, 10 Aug 2018 08:55:56 +0000</pubDate>
				<category><![CDATA[SharePoint 2016]]></category>
		<category><![CDATA[Search]]></category>
		<category><![CDATA[SharePoint]]></category>
		<guid isPermaLink="false">http://blogit.create.pt/miguelisidoro/?p=3734</guid>

					<description><![CDATA[<p>Hello, Recently, after installing a SharePoint 2016 farm (to learn more on how to install a SharePoint 2016 farm in an automated way using PowerShell click here and here), I was configuring the Search Service Application in a customer&#8217;s SharePoint 2016 farm and got into a crawling error while trying to crawl the content of [&#8230;]</p>
<p>The post <a href="https://blogit.create.pt/miguelisidoro/2018/08/10/sharepoint-2016-problems-crawling-content-and-the-the-crawler-could-not-communicate-with-the-server-error/">SharePoint 2016: Problems crawling content and the &#8220;The crawler could not communicate with the server.&#8221; error message</a> appeared first on <a href="https://blogit.create.pt">Blog IT</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Hello,</p>
<p>Recently, after installing a SharePoint 2016 farm (to learn more on how to install a SharePoint 2016 farm in an automated way using PowerShell click <a href="https://blogit.create.pt////miguelisidoro/2018/07/28/how-to-install-a-sharepoint-2016-farm-using-powershell-and-autospinstaller-part-1/" target="_blank" rel="noopener noreferrer">here</a> and <a href="https://blogit.create.pt////miguelisidoro/2018/07/28/how-to-install-a-sharepoint-2016-farm-using-powershell-and-autospinstaller-part-2/" target="_blank" rel="noopener noreferrer">here</a>), I was configuring the Search Service Application in a customer&#8217;s SharePoint 2016 farm and got into a crawling error while trying to crawl the content of one of the web applications that is configured to use a FQDN URL and https, for example https://intranet.contoso.com. This web application is using a Content Database that was migrated from SharePoint 2010 to SharePoint 2016.</p>
<h1>The Problem</h1>
<p>The error that was being thrown was during the Full Crawl of the Content Source was:</p>
<p>“The crawler could not communicate 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.”</p>
<h1>Failed Attempts</h1>
<p>When I saw this message, the first thought that crossed my mind was lack of permissions for the Default Content Access Account. The account was properly configured to have Full Read permissions on the web application and this was not the problem.</p>
<p>My next thought was that this could be a firewall problem and some ports necessary by the Search Service Application to properly crawl the web application content were not opened in the firewall (for a complete list of the necessary ports in a SharePoint 2016 installation, click <a href="https://blogs.msdn.microsoft.com/uksharepoint/2013/01/21/sharepoint-2013-ports-proxies-and-protocols-an-overview-of-farm-communications/" target="_blank" rel="noopener noreferrer">here</a> or <a href="https://blog.blksthl.com/2017/01/24/tcpip-ports-of-sharepoint-2016/" target="_blank" rel="noopener noreferrer">here</a>). However, after the firewall was properly configured, the error remained.</p>
<p>After some searching in the Internet, I tried without any success the following approaches:</p>
<ul>
<li>Disabling the <a href="https://blogs.technet.microsoft.com/sharepoint_foxhole/2010/06/21/disableloopbackcheck-lets-do-it-the-right-way/" target="_blank" rel="noopener noreferrer">loopback check</a> on the server</li>
<li>Disabling https for the web application</li>
<li>Creating a new empty web application with a FQDN URL and tried to crawl its contents</li>
<li>Resetting the search index</li>
<li>Deleting and recreating the content source</li>
</ul>
<h1>The Solution</h1>
<p>After all the failed attempts, I was able to solve the problem by extending the web application to a non-FQDN URL (for example http://intranet) and configuring this URL as the start address in the Content Source in the Search Service Application. This URL is internal (the host is only configured in the server&#8217;s hosts file and is not configured in the DNS) and is being used for crawling purposes only.</p>
<p><strong>Important detail:</strong> For the search results to be correctly presented, the newly added URL was configured in the Default Zone in Alternate Access Mappings (AAM) in Central Administration.</p>
<p><a href="http://blogit.create.pt/miguelisidoro/wp-content/uploads/sites/71/2018/08/Search_AlternateAccessMappings_DefaultZone.jpg"><img decoding="async" class="alignnone wp-image-3705 size-full" src="http://blogit.create.pt/miguelisidoro/wp-content/uploads/sites/71/2018/08/Search_AlternateAccessMappings_DefaultZone.jpg" alt="" width="769" height="219" srcset="https://blogit.create.pt/wp-content/uploads/2018/08/Search_AlternateAccessMappings_DefaultZone.jpg 769w, https://blogit.create.pt/wp-content/uploads/2018/08/Search_AlternateAccessMappings_DefaultZone-300x85.jpg 300w, https://blogit.create.pt/wp-content/uploads/2018/08/Search_AlternateAccessMappings_DefaultZone-768x219.jpg 768w, https://blogit.create.pt/wp-content/uploads/2018/08/Search_AlternateAccessMappings_DefaultZone-696x198.jpg 696w" sizes="(max-width: 769px) 100vw, 769px" /></a></p>
<p>The goal here is to allow users to use the FQDN URL (ex: https://intranet.contoso.com) to access the SharePoint Portal and the search results to include this same URL.</p>
<p>If I had configured the non-FQDN URL in a non-Default zone in AAM, the search results would always include the non-FQDN URL instead of the FQDN URL that users use to access the SharePoint Portal. To learn all about using the Default Zone to crawl content and AAM, please read the following two fantastic articles by Brian Pendergrass:</p>
<ul>
<li><a href="https://blogs.msdn.microsoft.com/sharepoint_strategery/2013/02/20/beware-crawling-the-non-default-zone-for-a-sharepoint-2013-web-application/" target="_blank" rel="noopener noreferrer">Beware crawling the non-Default zone for a SharePoint 2013 Web Application</a></li>
<li><a href="https://blogs.msdn.microsoft.com/sharepoint_strategery/2013/05/27/alternate-access-mappings-aams-explained/" target="_blank" rel="noopener noreferrer">Alternate Access Mappings (AAMs) *Explained</a></li>
</ul>
<p>I was able to configure a FQDN URL as the start address of a Content Source in the Search Service Application in one of my development environments without this problem, so I guess this behavior must be due to some infrastructure configuration in the customer&#8217;s environment which I have not yet been able to discover.<br />
If I find a solution that allows the usage of a FQDN URL to be configured as the start address in the Content Source in the Search Service Application, I will update this post.</p>
<p>Hope this helps!</p>
<h1>Related Articles</h1>
<p>To learn why your business should migrate to SharePoint Online and Office 365, click <a href="https://blogit.create.pt////miguelisidoro/2019/07/29/why-your-business-should-migrate-to-sharepoint-online-and-office-365-the-value-offer-part-1/" target="_blank" rel="noreferrer noopener">here</a> and <a href="https://blogit.create.pt////miguelisidoro/2019/07/29/why-your-business-should-migrate-to-sharepoint-online-and-office-365-the-value-offer-part-2/" target="_blank" rel="noreferrer noopener">here</a>.</p>
<p>If you want to convert your tenant&#8217;s root classic site into a modern SharePoint site, click <a href="https://blogit.create.pt////miguelisidoro/2019/08/27/how-to-modernize-your-tenant-root-site-collection-in-office-365-using-invoke-spositeswap/" target="_blank" rel="noreferrer noopener">here</a>.</p>
<p>In the meantime, new search capabilities have been introduced in SharePoint 2019. To learn more about them and all the new features in SharePoint 2019, click <a href="https://blogit.create.pt////miguelisidoro/2018/11/01/meet-the-new-modern-sharepoint-server-sharepoint-2019-rtm-is-here/" target="_blank" rel="noopener noreferrer">here</a>.</p>
<p>If you are a SharePoint administrator or a SharePoint developer who wants to learn more about how to install a SharePoint 2019 farm in an automated way using PowerShell, I invite you to click <a href="https://blogit.create.pt////miguelisidoro/2018/12/09/how-to-install-a-sharepoint-2019-farm-using-powershell-and-autospinstaller-part-1/" target="_blank" rel="noopener noreferrer">here</a> and <a href="https://blogit.create.pt////miguelisidoro/2018/12/09/how-to-install-a-sharepoint-2019-farm-using-powershell-and-autospinstaller-part-2/" target="_blank" rel="noopener noreferrer">here</a>.</p>
<p>If you want to learn how to upgrade a SharePoint 2013 farm to SharePoint 2019, click <a href="https://blogit.create.pt////miguelisidoro/2019/03/06/how-to-upgrade-from-sharepoint-2013-to-sharepoint-2019-step-by-step-part-1/" target="_blank" rel="noreferrer noopener">here </a>and <a href="https://blogit.create.pt////miguelisidoro/2019/03/06/how-to-upgrade-from-sharepoint-2013-to-sharepoint-2019-step-by-step-part-2/" target="_blank" rel="noreferrer noopener">here</a>.</p>
<p>If you want to learn all the steps and precautions necessary to successfully keep your SharePoint farm updated and be ready to start your move to the cloud, click <a href="https://blogit.create.pt////miguelisidoro/2019/04/08/how-to-install-sharepoint-cumulative-updates-in-a-sharepoint-farm-step-by-step/" target="_blank" rel="noreferrer noopener">here</a>.</p>
<p>If you learn how to greatly speed up your SharePoint farm update process to ensure your SharePoint farm keeps updated and you stay one step closer to start your move to the cloud, click <a href="https://blogit.create.pt////miguelisidoro/2019/05/02/how-to-speed-up-the-installation-of-sharepoint-cumulative-updates-using-powershell-step-by-step/" target="_blank" rel="noreferrer noopener" aria-label="here (opens in a new tab)">here</a>.</p>
<p>If SharePoint 2019 is still not an option, you can learn more about how to install a SharePoint 2016 farm in an automated way using PowerShell, click <a href="https://blogit.create.pt////miguelisidoro/2018/07/28/how-to-install-a-sharepoint-2016-farm-using-powershell-and-autospinstaller-part-1/" target="_blank" rel="noreferrer noopener">here</a> and <a href="https://blogit.create.pt////miguelisidoro/2018/07/28/how-to-install-a-sharepoint-2016-farm-using-powershell-and-autospinstaller-part-2/" target="_blank" rel="noreferrer noopener">here</a>.</p>
<p>If you are involved in a SharePoint upgrade and want to learn more about the upgrade process, click <a href="https://blogit.create.pt////miguelisidoro/2019/02/04/sharepoint-upgrade-upgrading-a-sharepoint-2010-farm-to-sharepoint-2016-step-by-step-part-1/" target="_blank" rel="noreferrer noopener">here </a>and <a href="https://blogit.create.pt////miguelisidoro/2019/02/04/sharepoint-upgrade-upgrading-a-sharepoint-2010-farm-to-sharepoint-2016-step-by-step-part-2/" target="_blank" rel="noreferrer noopener">here</a>.</p>
<p>If you are new to SharePoint and Office 365 and want to learn all about it, take a look at these <a href="https://blogit.create.pt////miguelisidoro/2018/10/17/sharepoint-and-office-365-learning-resources/" target="_blank" rel="noopener noreferrer">learning resources</a>.</p>
<p>If you want to know all about the latest SharePoint and Office 365 announcements from SharePoint Conference 2019, click <a href="https://blogit.create.pt////miguelisidoro/2019/06/05/whats-new-for-sharepoint-and-office-365-from-sharepoint-conference-2019-part-1/" target="_blank" rel="noreferrer noopener">here </a>and <a href="https://blogit.create.pt////miguelisidoro/2019/06/05/whats-new-for-sharepoint-and-office-365-from-sharepoint-conference-2019-part-2/" target="_blank" rel="noreferrer noopener">here</a>.</p>
<p>If you are work in a large organization who is using Office 365 or thinking to move to Office 365 and is considering between a single or multiple Office 365 tenants, I invite you to read <a href="https://blogit.create.pt////miguelisidoro/2019/01/07/pros-and-cons-of-single-tenant-vs-multiple-tenants-in-office-365/" target="_blank" rel="noreferrer noopener">this article</a>.</p>
<p>Happy SharePointing!</p>
<p>The post <a href="https://blogit.create.pt/miguelisidoro/2018/08/10/sharepoint-2016-problems-crawling-content-and-the-the-crawler-could-not-communicate-with-the-server-error/">SharePoint 2016: Problems crawling content and the &#8220;The crawler could not communicate with the server.&#8221; error message</a> appeared first on <a href="https://blogit.create.pt">Blog IT</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blogit.create.pt/miguelisidoro/2018/08/10/sharepoint-2016-problems-crawling-content-and-the-the-crawler-could-not-communicate-with-the-server-error/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Azure Search Index with 2 datasources</title>
		<link>https://blogit.create.pt/ricardocosta/2017/11/10/azure-search-index-with-2-datasources/</link>
					<comments>https://blogit.create.pt/ricardocosta/2017/11/10/azure-search-index-with-2-datasources/#comments</comments>
		
		<dc:creator><![CDATA[Ricardo Costa]]></dc:creator>
		<pubDate>Fri, 10 Nov 2017 15:24:02 +0000</pubDate>
				<category><![CDATA[Cloud]]></category>
		<category><![CDATA[Search]]></category>
		<category><![CDATA[Microsoft Azure]]></category>
		<guid isPermaLink="false">http://blogit.create.pt/ricardocosta/?p=1834</guid>

					<description><![CDATA[<p>Recently I had the need to index documents stored in Azure Storage Blobs. Additionally I wanted to use the blob storage metadata also to add some information to those documents. Because I needed rich text information on the metadata I could use blob storage metadata directly. Se here why. So I had to use 2 [&#8230;]</p>
<p>The post <a href="https://blogit.create.pt/ricardocosta/2017/11/10/azure-search-index-with-2-datasources/">Azure Search Index with 2 datasources</a> appeared first on <a href="https://blogit.create.pt">Blog IT</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Recently I had the need to index documents stored in Azure Storage Blobs. Additionally I wanted to use the blob storage metadata also to add some information to those documents. Because I needed rich text information on the metadata I could use blob storage metadata directly. Se <a href="http://blogit.create.pt/ricardocosta/2017/11/10/azure-blob-storage-metadata-400-bad-request/" target="_blank" rel="noopener">here</a> why.</p>
<p>So I had to use 2 different data sources. One for the documents and another to the metadata. So I chose Azure Blob Storage and Azure Table Storage. This is the full diagram of the final solution:</p>
<p><a href="http://blogit-create.com/wp-content/uploads/2017/11/AzureSearch01.png"><img decoding="async" class="aligncenter wp-image-1974 size-full" src="http://blogit-create.com/wp-content/uploads/2017/11/AzureSearch01.png" alt="" width="807" height="456" srcset="https://blogit.create.pt/wp-content/uploads/2017/11/AzureSearch01.png 807w, https://blogit.create.pt/wp-content/uploads/2017/11/AzureSearch01-300x170.png 300w, https://blogit.create.pt/wp-content/uploads/2017/11/AzureSearch01-768x434.png 768w, https://blogit.create.pt/wp-content/uploads/2017/11/AzureSearch01-696x393.png 696w, https://blogit.create.pt/wp-content/uploads/2017/11/AzureSearch01-743x420.png 743w" sizes="(max-width: 807px) 100vw, 807px" /></a></p>
<p>The indexers are responsible for updating the index with the contents of the 2 different data sources. There is a very important field that in my case it&#8217;s called the <span style="text-decoration: underline"><strong>UniqueIdentifier</strong></span> field because this field is marked with the <span style="text-decoration: underline"><strong>key</strong></span> property. This is the field that uniquely identifies each document on the Azure Search Index.</p>
<p>And it&#8217;s this field that is responsible for correlating the items that come from one data source (documents from blob storage) and items that come from the other data source (records from table storage).</p>
<p>Every document inserted in blob storage has a custom metadata property named also UniqueIdentifier that will have a table storage record associated with the corresponding metadata.</p>
<p><span id="more-1834"></span></p>
<pre class="brush: csharp; highlight: [15]; title: ; notranslate">

// Retrieve storage account from connection string.
CloudStorageAccount storageAccount = CloudStorageAccount.Parse(
                CloudConfigurationManager.GetSetting(&quot;StorageConnectionString&quot;));

// Create the blob client.
CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();

// Retrieve a reference to a container.
CloudBlobContainer container = blobClient.GetContainerReference(&quot;mycontainer&quot;);

// Create the container if it doesn't already exist.
container.CreateIfNotExists();

// Add some metadata to the container.
container.Metadata.Add(&quot;UniqueIdentifier&quot;, &quot;bla bla bla&quot;);

</pre>
<p>The table storage records have these values stored on the RowKey and the indexer have a mapping instruction to map the origin (RowKey) to the destination (UniqueIdentifier). You can check this mapping instruction later in the indexer schema.</p>
<p>First of all I created the Index:</p>
<p>(I&#8217;ve highlighted the <span style="text-decoration: underline"><strong>UniqueIdentifier</strong></span> field wiht the <span style="text-decoration: underline"><strong>Key</strong></span> property set to <span style="text-decoration: underline"><strong>TRUE</strong></span>)</p>
<pre class="brush: plain; highlight: [19,20,21,22,23,24,25,26,27,28,29,30,31]; title: ; notranslate">

{
  &quot;@odata.context&quot;: &quot;https://something.search.windows.net/$metadata#indexes/$entity&quot;,
  &quot;@odata.etag&quot;: &quot;\&quot;0x8D477848BDEFA50\&quot;&quot;,
  &quot;name&quot;: &quot;full-index&quot;,
  &quot;fields&quot;: &#x5B;
    {
      &quot;name&quot;: &quot;ClientCode&quot;,
      &quot;type&quot;: &quot;Edm.String&quot;,
      &quot;searchable&quot;: false,
      &quot;filterable&quot;: true,
      &quot;retrievable&quot;: true,
      &quot;sortable&quot;: true,
      &quot;facetable&quot;: true,
      &quot;key&quot;: false,
      &quot;indexAnalyzer&quot;: null,
      &quot;searchAnalyzer&quot;: null,
      &quot;analyzer&quot;: null
    },
    {
      &quot;name&quot;: &quot;UniqueIdentifier&quot;,
      &quot;type&quot;: &quot;Edm.String&quot;,
      &quot;searchable&quot;: false,
      &quot;filterable&quot;: true,
      &quot;retrievable&quot;: true,
      &quot;sortable&quot;: false,
      &quot;facetable&quot;: false,
      &quot;key&quot;: true,
      &quot;indexAnalyzer&quot;: null,
      &quot;searchAnalyzer&quot;: null,
      &quot;analyzer&quot;: null
    },
    {
      &quot;name&quot;: &quot;ETag&quot;,
      &quot;type&quot;: &quot;Edm.String&quot;,
      &quot;searchable&quot;: false,
      &quot;filterable&quot;: false,
      &quot;retrievable&quot;: false,
      &quot;sortable&quot;: false,
      &quot;facetable&quot;: false,
      &quot;key&quot;: false,
      &quot;indexAnalyzer&quot;: null,
      &quot;searchAnalyzer&quot;: null,
      &quot;analyzer&quot;: null
    },
    {
      &quot;name&quot;: &quot;Timestamp&quot;,
      &quot;type&quot;: &quot;Edm.DateTimeOffset&quot;,
      &quot;searchable&quot;: false,
      &quot;filterable&quot;: false,
      &quot;retrievable&quot;: false,
      &quot;sortable&quot;: false,
      &quot;facetable&quot;: false,
      &quot;key&quot;: false,
      &quot;indexAnalyzer&quot;: null,
      &quot;searchAnalyzer&quot;: null,
      &quot;analyzer&quot;: null
    },
    {
      &quot;name&quot;: &quot;Key&quot;,
      &quot;type&quot;: &quot;Edm.String&quot;,
      &quot;searchable&quot;: false,
      &quot;filterable&quot;: false,
      &quot;retrievable&quot;: false,
      &quot;sortable&quot;: false,
      &quot;facetable&quot;: false,
      &quot;key&quot;: false,
      &quot;indexAnalyzer&quot;: null,
      &quot;searchAnalyzer&quot;: null,
      &quot;analyzer&quot;: null
    },
    {
      &quot;name&quot;: &quot;Opportunity&quot;,
      &quot;type&quot;: &quot;Edm.String&quot;,
      &quot;searchable&quot;: true,
      &quot;filterable&quot;: false,
      &quot;retrievable&quot;: true,
      &quot;sortable&quot;: false,
      &quot;facetable&quot;: false,
      &quot;key&quot;: false,
      &quot;indexAnalyzer&quot;: null,
      &quot;searchAnalyzer&quot;: null,
      &quot;analyzer&quot;: &quot;pt-Pt.lucene&quot;
    },
    {
      &quot;name&quot;: &quot;OpportunityCode&quot;,
      &quot;type&quot;: &quot;Edm.String&quot;,
      &quot;searchable&quot;: false,
      &quot;filterable&quot;: false,
      &quot;retrievable&quot;: true,
      &quot;sortable&quot;: false,
      &quot;facetable&quot;: false,
      &quot;key&quot;: false,
      &quot;indexAnalyzer&quot;: null,
      &quot;searchAnalyzer&quot;: null,
      &quot;analyzer&quot;: null
    },
    {
      &quot;name&quot;: &quot;DocumentExtension&quot;,
      &quot;type&quot;: &quot;Edm.String&quot;,
      &quot;searchable&quot;: false,
      &quot;filterable&quot;: true,
      &quot;retrievable&quot;: true,
      &quot;sortable&quot;: false,
      &quot;facetable&quot;: true,
      &quot;key&quot;: false,
      &quot;indexAnalyzer&quot;: null,
      &quot;searchAnalyzer&quot;: null,
      &quot;analyzer&quot;: null
    },
    {
      &quot;name&quot;: &quot;DocumentType&quot;,
      &quot;type&quot;: &quot;Edm.String&quot;,
      &quot;searchable&quot;: false,
      &quot;filterable&quot;: true,
      &quot;retrievable&quot;: true,
      &quot;sortable&quot;: false,
      &quot;facetable&quot;: true,
      &quot;key&quot;: false,
      &quot;indexAnalyzer&quot;: null,
      &quot;searchAnalyzer&quot;: null,
      &quot;analyzer&quot;: null
    },
    {
      &quot;name&quot;: &quot;ClientName&quot;,
      &quot;type&quot;: &quot;Edm.String&quot;,
      &quot;searchable&quot;: true,
      &quot;filterable&quot;: true,
      &quot;retrievable&quot;: true,
      &quot;sortable&quot;: true,
      &quot;facetable&quot;: true,
      &quot;key&quot;: false,
      &quot;indexAnalyzer&quot;: null,
      &quot;searchAnalyzer&quot;: null,
      &quot;analyzer&quot;: &quot;pt-Pt.lucene&quot;
    },
    {
      &quot;name&quot;: &quot;Year&quot;,
      &quot;type&quot;: &quot;Edm.Int32&quot;,
      &quot;searchable&quot;: false,
      &quot;filterable&quot;: true,
      &quot;retrievable&quot;: true,
      &quot;sortable&quot;: true,
      &quot;facetable&quot;: true,
      &quot;key&quot;: false,
      &quot;indexAnalyzer&quot;: null,
      &quot;searchAnalyzer&quot;: null,
      &quot;analyzer&quot;: null
    },
    {
      &quot;name&quot;: &quot;Path&quot;,
      &quot;type&quot;: &quot;Edm.String&quot;,
      &quot;searchable&quot;: false,
      &quot;filterable&quot;: false,
      &quot;retrievable&quot;: true,
      &quot;sortable&quot;: false,
      &quot;facetable&quot;: false,
      &quot;key&quot;: false,
      &quot;indexAnalyzer&quot;: null,
      &quot;searchAnalyzer&quot;: null,
      &quot;analyzer&quot;: null
    },
    {
      &quot;name&quot;: &quot;LocalPath&quot;,
      &quot;type&quot;: &quot;Edm.String&quot;,
      &quot;searchable&quot;: false,
      &quot;filterable&quot;: false,
      &quot;retrievable&quot;: true,
      &quot;sortable&quot;: false,
      &quot;facetable&quot;: false,
      &quot;key&quot;: false,
      &quot;indexAnalyzer&quot;: null,
      &quot;searchAnalyzer&quot;: null,
      &quot;analyzer&quot;: null
    },
    {
      &quot;name&quot;: &quot;Name&quot;,
      &quot;type&quot;: &quot;Edm.String&quot;,
      &quot;searchable&quot;: true,
      &quot;filterable&quot;: false,
      &quot;retrievable&quot;: true,
      &quot;sortable&quot;: true,
      &quot;facetable&quot;: false,
      &quot;key&quot;: false,
      &quot;indexAnalyzer&quot;: null,
      &quot;searchAnalyzer&quot;: null,
      &quot;analyzer&quot;: &quot;pt-Pt.lucene&quot;
    },
    {
      &quot;name&quot;: &quot;content&quot;,
      &quot;type&quot;: &quot;Edm.String&quot;,
      &quot;searchable&quot;: true,
      &quot;filterable&quot;: false,
      &quot;retrievable&quot;: false,
      &quot;sortable&quot;: false,
      &quot;facetable&quot;: false,
      &quot;key&quot;: false,
      &quot;indexAnalyzer&quot;: null,
      &quot;searchAnalyzer&quot;: null,
      &quot;analyzer&quot;: &quot;pt-Pt.lucene&quot;
    },
    {
      &quot;name&quot;: &quot;metadata_storage_content_type&quot;,
      &quot;type&quot;: &quot;Edm.String&quot;,
      &quot;searchable&quot;: false,
      &quot;filterable&quot;: false,
      &quot;retrievable&quot;: true,
      &quot;sortable&quot;: false,
      &quot;facetable&quot;: false,
      &quot;key&quot;: false,
      &quot;indexAnalyzer&quot;: null,
      &quot;searchAnalyzer&quot;: null,
      &quot;analyzer&quot;: null
    },
    {
      &quot;name&quot;: &quot;metadata_storage_size&quot;,
      &quot;type&quot;: &quot;Edm.Int64&quot;,
      &quot;searchable&quot;: false,
      &quot;filterable&quot;: false,
      &quot;retrievable&quot;: true,
      &quot;sortable&quot;: false,
      &quot;facetable&quot;: false,
      &quot;key&quot;: false,
      &quot;indexAnalyzer&quot;: null,
      &quot;searchAnalyzer&quot;: null,
      &quot;analyzer&quot;: null
    },
    {
      &quot;name&quot;: &quot;metadata_storage_last_modified&quot;,
      &quot;type&quot;: &quot;Edm.DateTimeOffset&quot;,
      &quot;searchable&quot;: false,
      &quot;filterable&quot;: false,
      &quot;retrievable&quot;: true,
      &quot;sortable&quot;: false,
      &quot;facetable&quot;: false,
      &quot;key&quot;: false,
      &quot;indexAnalyzer&quot;: null,
      &quot;searchAnalyzer&quot;: null,
      &quot;analyzer&quot;: null
    },
    {
      &quot;name&quot;: &quot;metadata_storage_content_md5&quot;,
      &quot;type&quot;: &quot;Edm.String&quot;,
      &quot;searchable&quot;: false,
      &quot;filterable&quot;: false,
      &quot;retrievable&quot;: true,
      &quot;sortable&quot;: false,
      &quot;facetable&quot;: false,
      &quot;key&quot;: false,
      &quot;indexAnalyzer&quot;: null,
      &quot;searchAnalyzer&quot;: null,
      &quot;analyzer&quot;: null
    },
    {
      &quot;name&quot;: &quot;metadata_storage_name&quot;,
      &quot;type&quot;: &quot;Edm.String&quot;,
      &quot;searchable&quot;: false,
      &quot;filterable&quot;: false,
      &quot;retrievable&quot;: true,
      &quot;sortable&quot;: false,
      &quot;facetable&quot;: false,
      &quot;key&quot;: false,
      &quot;indexAnalyzer&quot;: null,
      &quot;searchAnalyzer&quot;: null,
      &quot;analyzer&quot;: null
    },
    {
      &quot;name&quot;: &quot;metadata_storage_path&quot;,
      &quot;type&quot;: &quot;Edm.String&quot;,
      &quot;searchable&quot;: false,
      &quot;filterable&quot;: false,
      &quot;retrievable&quot;: true,
      &quot;sortable&quot;: false,
      &quot;facetable&quot;: false,
      &quot;key&quot;: false,
      &quot;indexAnalyzer&quot;: null,
      &quot;searchAnalyzer&quot;: null,
      &quot;analyzer&quot;: null
    },
    {
      &quot;name&quot;: &quot;metadata_author&quot;,
      &quot;type&quot;: &quot;Edm.String&quot;,
      &quot;searchable&quot;: false,
      &quot;filterable&quot;: false,
      &quot;retrievable&quot;: true,
      &quot;sortable&quot;: false,
      &quot;facetable&quot;: false,
      &quot;key&quot;: false,
      &quot;indexAnalyzer&quot;: null,
      &quot;searchAnalyzer&quot;: null,
      &quot;analyzer&quot;: null
    },
    {
      &quot;name&quot;: &quot;metadata_content_type&quot;,
      &quot;type&quot;: &quot;Edm.String&quot;,
      &quot;searchable&quot;: false,
      &quot;filterable&quot;: false,
      &quot;retrievable&quot;: true,
      &quot;sortable&quot;: false,
      &quot;facetable&quot;: false,
      &quot;key&quot;: false,
      &quot;indexAnalyzer&quot;: null,
      &quot;searchAnalyzer&quot;: null,
      &quot;analyzer&quot;: null
    },
    {
      &quot;name&quot;: &quot;metadata_creation_date&quot;,
      &quot;type&quot;: &quot;Edm.DateTimeOffset&quot;,
      &quot;searchable&quot;: false,
      &quot;filterable&quot;: false,
      &quot;retrievable&quot;: true,
      &quot;sortable&quot;: false,
      &quot;facetable&quot;: false,
      &quot;key&quot;: false,
      &quot;indexAnalyzer&quot;: null,
      &quot;searchAnalyzer&quot;: null,
      &quot;analyzer&quot;: null
    },
    {
      &quot;name&quot;: &quot;metadata_last_modified&quot;,
      &quot;type&quot;: &quot;Edm.DateTimeOffset&quot;,
      &quot;searchable&quot;: false,
      &quot;filterable&quot;: false,
      &quot;retrievable&quot;: true,
      &quot;sortable&quot;: false,
      &quot;facetable&quot;: false,
      &quot;key&quot;: false,
      &quot;indexAnalyzer&quot;: null,
      &quot;searchAnalyzer&quot;: null,
      &quot;analyzer&quot;: null
    }
  ],
  &quot;scoringProfiles&quot;: &#x5B;],
  &quot;defaultScoringProfile&quot;: &quot;&quot;,
  &quot;corsOptions&quot;: null,
  &quot;suggesters&quot;: &#x5B;
    {
      &quot;name&quot;: &quot;temp-suggester&quot;,
      &quot;searchMode&quot;: &quot;analyzingInfixMatching&quot;,
      &quot;sourceFields&quot;: &#x5B;
        &quot;ClientCode&quot;,
        &quot;Opportunity&quot;,
        &quot;ClientName&quot;,
        &quot;Name&quot;
      ]
    }
  ],
  &quot;analyzers&quot;: &#x5B;],
  &quot;tokenizers&quot;: &#x5B;],
  &quot;tokenFilters&quot;: &#x5B;],
  &quot;charFilters&quot;: &#x5B;]
}

</pre>
<p>After the index was created I&#8217;ve created the container and uploaded my files. This is the corresponding data source:</p>
<pre class="brush: plain; title: ; notranslate">

{
  &quot;@odata.context&quot;: &quot;https://something.search.windows.net/$metadata#datasources/$entity&quot;,
  &quot;@odata.etag&quot;: &quot;\&quot;0x8D526E01DDB35F4\&quot;&quot;,
  &quot;name&quot;: &quot;opportunities-datasource&quot;,
  &quot;description&quot;: &quot;&quot;,
  &quot;type&quot;: &quot;azureblob&quot;,
  &quot;subtype&quot;: null,
  &quot;credentials&quot;: {
    &quot;connectionString&quot;: null
  },
  &quot;container&quot;: {
    &quot;name&quot;: &quot;opportunities&quot;,
    &quot;query&quot;: null
  },
  &quot;dataChangeDetectionPolicy&quot;: null,
  &quot;dataDeletionDetectionPolicy&quot;: null
}

</pre>
<p>I&#8217;ve also create the Table Storage and inserted the metadata records. This is the data source:</p>
<pre class="brush: plain; title: ; notranslate">

{
  &quot;@odata.context&quot;: &quot;https://something.search.windows.net/$metadata#datasources/$entity&quot;,
  &quot;@odata.etag&quot;: &quot;\&quot;0x8D526E01DB70AF2\&quot;&quot;,
  &quot;name&quot;: &quot;ecmcreatemeta&quot;,
  &quot;description&quot;: &quot;&quot;,
  &quot;type&quot;: &quot;azuretable&quot;,
  &quot;subtype&quot;: null,
  &quot;credentials&quot;: {
    &quot;connectionString&quot;: null
  },
  &quot;container&quot;: {
    &quot;name&quot;: &quot;opportunities&quot;,
    &quot;query&quot;: null
  },
  &quot;dataChangeDetectionPolicy&quot;: null,
  &quot;dataDeletionDetectionPolicy&quot;: null
}

</pre>
<p>And these are the indexers. The documents indexer:</p>
<pre class="brush: plain; title: ; notranslate">

{
  &quot;@odata.context&quot;: &quot;https://something.search.windows.net/$metadata#indexers/$entity&quot;,
  &quot;@odata.etag&quot;: &quot;\&quot;0x8D477862D23289E\&quot;&quot;,
  &quot;name&quot;: &quot;full-indexer-blob&quot;,
  &quot;description&quot;: &quot;&quot;,
  &quot;dataSourceName&quot;: &quot;opportunities-datasource&quot;,
  &quot;targetIndexName&quot;: &quot;full-index&quot;,
  &quot;schedule&quot;: null,
  &quot;parameters&quot;: {
    &quot;batchSize&quot;: 10,
    &quot;maxFailedItems&quot;: 10,
    &quot;maxFailedItemsPerBatch&quot;: 10,
    &quot;base64EncodeKeys&quot;: false,
    &quot;configuration&quot;: {
      &quot;dataToExtract&quot;: &quot;contentAndMetadata&quot;,
      &quot;failOnUnsupportedContentType&quot;: false,
      &quot;indexedFileNameExtensions&quot;: &quot;.pdf, .docx, .doc, .xlsx, .xls, .pptx, .ppt, .msg, .html, .htm, .xml, .zip, .eml, .txt, .json, .csv&quot;
    }
  },
  &quot;fieldMappings&quot;: &#x5B;],
  &quot;disabled&quot;: null
}

</pre>
<p>And the metadata indexer:</p>
<pre class="brush: plain; highlight: [22,23,24,25,26]; title: ; notranslate">

{
  &quot;@odata.context&quot;: &quot;https://something.search.windows.net/$metadata#indexers/$entity&quot;,
  &quot;@odata.etag&quot;: &quot;\&quot;0x8D47784D3CE80DF\&quot;&quot;,
  &quot;name&quot;: &quot;full-indexer-meta&quot;,
  &quot;description&quot;: &quot;&quot;,
  &quot;dataSourceName&quot;: &quot;ecmcreatemeta&quot;,
  &quot;targetIndexName&quot;: &quot;full-index&quot;,
  &quot;schedule&quot;: null,
  &quot;parameters&quot;: {
    &quot;batchSize&quot;: null,
    &quot;maxFailedItems&quot;: 0,
    &quot;maxFailedItemsPerBatch&quot;: 0,
    &quot;base64EncodeKeys&quot;: false,
    &quot;configuration&quot;: {}
  },
  &quot;fieldMappings&quot;: &#x5B;
    {
      &quot;sourceFieldName&quot;: &quot;PartitionKey&quot;,
      &quot;targetFieldName&quot;: &quot;ClientCode&quot;,
      &quot;mappingFunction&quot;: null
    },
    {
      &quot;sourceFieldName&quot;: &quot;RowKey&quot;,
      &quot;targetFieldName&quot;: &quot;UniqueIdentifier&quot;,
      &quot;mappingFunction&quot;: null
    }
  ],
  &quot;disabled&quot;: null
}

</pre>
<p>That is the RowKey UniqueIdentifier mapping function. That is how Azure Search will map the records from table storage to documents inside the index.</p>
<p>The post <a href="https://blogit.create.pt/ricardocosta/2017/11/10/azure-search-index-with-2-datasources/">Azure Search Index with 2 datasources</a> appeared first on <a href="https://blogit.create.pt">Blog IT</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blogit.create.pt/ricardocosta/2017/11/10/azure-search-index-with-2-datasources/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>Using KeywordQuery with CSOM SharePoint Online</title>
		<link>https://blogit.create.pt/ricardocosta/2017/10/25/using-keywordquery-with-csom-sharepoint-online/</link>
					<comments>https://blogit.create.pt/ricardocosta/2017/10/25/using-keywordquery-with-csom-sharepoint-online/#comments</comments>
		
		<dc:creator><![CDATA[Ricardo Costa]]></dc:creator>
		<pubDate>Wed, 25 Oct 2017 14:27:12 +0000</pubDate>
				<category><![CDATA[SharePoint Online]]></category>
		<category><![CDATA[Search]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[sharepoint]]></category>
		<category><![CDATA[CSOM]]></category>
		<guid isPermaLink="false">http://blogit.create.pt/ricardocosta/?p=1744</guid>

					<description><![CDATA[<p>string username = &#34;***********&#34;; string pwd = &#34;*********&#34;; string siteURL = &#34;**********&#34;; ClientContext context = new ClientContext(siteURL); Web web = context.Web; SecureString pass = new SecureString(); foreach (char c in pwd.ToCharArray()) pass.AppendChar(c); context.Credentials = new SharePointOnlineCredentials(username, passWord); try { KeywordQuery query = new KeywordQuery(context); query.QueryText = &#34;ContentType:Factura AND PrecoOWSCURR&#62;10000&#34;; query.RowLimit = 10; query.RowsPerPage = 10; [&#8230;]</p>
<p>The post <a href="https://blogit.create.pt/ricardocosta/2017/10/25/using-keywordquery-with-csom-sharepoint-online/">Using KeywordQuery with CSOM SharePoint Online</a> appeared first on <a href="https://blogit.create.pt">Blog IT</a>.</p>
]]></description>
										<content:encoded><![CDATA[<pre class="brush: csharp; title: ; notranslate">

string username = &quot;***********&quot;;
string pwd = &quot;*********&quot;;
string siteURL = &quot;**********&quot;;

ClientContext context = new ClientContext(siteURL);
Web web = context.Web;
SecureString pass = new SecureString();
foreach (char c in pwd.ToCharArray()) pass.AppendChar(c);
context.Credentials = new SharePointOnlineCredentials(username, passWord);
try
{
    KeywordQuery query = new KeywordQuery(context);
    query.QueryText = &quot;ContentType:Factura AND PrecoOWSCURR&gt;10000&quot;;
    
    query.RowLimit = 10;
    query.RowsPerPage = 10;
    SearchExecutor search = new SearchExecutor(context);
    ClientResult&lt;ResultTableCollection&gt; results = search.ExecuteQuery(query);
    context.ExecuteQuery();

    foreach (var resultRow in results.Value&#x5B;0].ResultRows)
    {
        Console.WriteLine(&quot;{0}&quot;, resultRow&#x5B;&quot;Title&quot;]);
    }
}
catch (Exception e)
{
    Console.WriteLine(e.ToString());
    Console.ReadKey();
}

</pre>
<p>The post <a href="https://blogit.create.pt/ricardocosta/2017/10/25/using-keywordquery-with-csom-sharepoint-online/">Using KeywordQuery with CSOM SharePoint Online</a> appeared first on <a href="https://blogit.create.pt">Blog IT</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blogit.create.pt/ricardocosta/2017/10/25/using-keywordquery-with-csom-sharepoint-online/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title>the European SharePoint Conference 2015 was great!</title>
		<link>https://blogit.create.pt/andrevala/2015/11/14/the-european-sharepoint-conference-2015-was-great/</link>
					<comments>https://blogit.create.pt/andrevala/2015/11/14/the-european-sharepoint-conference-2015-was-great/#comments</comments>
		
		<dc:creator><![CDATA[André Vala]]></dc:creator>
		<pubDate>Sat, 14 Nov 2015 00:02:05 +0000</pubDate>
				<category><![CDATA[SharePoint 2016]]></category>
		<category><![CDATA[SharePoint 2013]]></category>
		<category><![CDATA[Office]]></category>
		<category><![CDATA[Microsoft 365]]></category>
		<category><![CDATA[Events]]></category>
		<category><![CDATA[Search]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[European SharePoint Conference]]></category>
		<guid isPermaLink="false">http://blogit.create.pt/andrevala/?p=1941</guid>

					<description><![CDATA[<p>The fourth edition of the European SharePoint Conference has now finished and it was bigger and better than ever. It took place in the wonderful city of Stockholm, in Sweden, from November 9th to November 12th. Like in previous years, the first day was dedicated to pre-conference full-day tutorials and the conference actually started in [&#8230;]</p>
<p>The post <a href="https://blogit.create.pt/andrevala/2015/11/14/the-european-sharepoint-conference-2015-was-great/">the European SharePoint Conference 2015 was great!</a> appeared first on <a href="https://blogit.create.pt">Blog IT</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>The fourth edition of the <a href="http://www.sharepointeurope.com" target="_blank">European SharePoint Conference</a> has now finished and it was bigger and better than ever. It took place in the wonderful city of <strong>Stockholm</strong>, in <strong>Sweden</strong>, from <strong>November 9th</strong> to <strong>November 12th</strong>. Like in previous years, the first day was dedicated to pre-conference full-day tutorials and the conference actually started in the second day. It featured a large exposition floor for sponsors to present their products and services, and also a community area with soapbox sessions during session intermissions and meals. The conference got <strong>over 1,500 delegates</strong> from <strong>over 50 different countries</strong>. </p>
<p>The programme team did a great job going through over <strong>700 session submissions</strong> and putting together a stellar lineup of great speakers while also broadening the scope of the conference to include Office 365 and Microsoft Azure along with the SharePoint-related content. Congratulations to <strong>Wim Dierickx</strong>, <strong>Göran Husman</strong>, <strong>Adis Jugo</strong> and <strong>Nicki Borell</strong>. I was on the programme team last year and I know how hard it is to select the sessions and speakers, and put together a compelling programme. </p>
<p>The first keynote was delivered by <strong>Seth Patton</strong>, <strong>Jeff Tepper</strong> and <strong>Bill Baer</strong>, and this fact alone demonstrates how much Microsoft is invested in connecting with the community. The keynote was mostly focused on: </p>
<ul>
<li>Usage and adoption statistics for Office 365</li>
<li>New and improved features that recently rolled out in Office 365</li>
<li>Near future roadmap for Office 365</li>
<li>What&#8217;s New in SharePoint Server 2016</li>
</ul>
<p>Regarding usage and adoption, Office 365 has some impressive statistics: </p>
<ul>
<li><strong>Over 75,000 customers</strong> which account for more than <strong>160 million users</strong>
<li>200% monthly active user growth
<li><strong>7 Billion Office documents</strong> stored in OneDrive for Business, team sites and other SharePoint portals, which represents a <strong>500% year-on-year growth</strong> in content
<li>Runs on <strong>30,000 servers</strong>, with<strong> 20,000 SQL databases</strong>, on <strong>19 datacenters</strong> around the world.</li>
</ul>
<p>As for new features and near future roadmap for Office 365, Jeff Tepper and Bill Baer shared that: </p>
<ul>
<li>OneDrive for Business will now have a new rock-solid sync client (which has been in preview for a few weeks) and already has mobile apps for all devices. It recently got a revamped UI with a better browsing and sharing experience, and better tooling for IT management.
<li>SharePoint Online has rolled-out improvements in collaboration, co-authoring and external sharing features.
<li>The new Office 365 groups and their tight integration with Outlook 2016 is helping people to be more productive, adapting the technology to the users and not the other way around.
<li>Delve and the Office Graph are also evolving, with new APIs and the new analytics features that are now in development.</li>
</ul>
<p>The biggest announcement was the release of a <strong>second and last beta version of SharePoint Server 2016</strong> before the end of the month, which will be nearly feature complete. The new features of SharePoint Server 2016 were already known since Microsoft Ignite a few months back, but it was still interesting to hear about the enhanced mobile experience, robust and cloud inspired infrastructure, and the compliance and data loss prevention features. </p>
<p>My session was about &#8220;<strong>Content Recommendation with SharePoint Search</strong>&#8221; and I think it was well received by the 100 or so attendees in the room, but having to deliver a session on the afternoon of the last day usually means I&#8217;m not going to enjoy the conference because I&#8217;ll be too worried fine tuning the slides and demos, and practicing the presentation until almost the end. If you&#8217;re interested in the presentation contents check the slide deck on <a href="http://www.slideshare.net/AndreVala/content-recommendation-with-sharepoint-search" target="_blank">SlideShare</a>. </p>
<p>Nevertheless, I still managed to attend a few sessions by really good presenters: </p>
<ul>
<li><strong>Radi Atanassov</strong> (<a title="@RadiAtanassov" href="https://twitter.com/RadiAtanassov/" target="_blank">@RadiAtanassov</a>) presented a great session on <strong>Office 365 Dev Patterns and Practices</strong>.
<li><strong>Chris O&#8217;Brien</strong> (<a title="@ChrisO_Brien" href="https://twitter.com/ChrisO_Brien/" target="_blank">@ChrisO_Brien</a>) gave some fantastic tips on what you <strong>should and shouldn&#8217;t do</strong> when developing for Office 365.
<li><strong>Marius Constantinescu</strong> (<a href="https://twitter.com/c_marius" target="_blank">@c_marius</a>) showed us how to use Lightswitch to <strong>build cloud business apps</strong> in Visual Studio.
<li><strong>Nuno Costa</strong> (<a title="@ndocosta" href="https://twitter.com/ndocosta">@ndocosta</a>) and <strong>João Oliveira</strong> (<a href="https://twitter.com/joaopcoliveira" target="_blank">@joaopcoliveira</a>), fellow Portuguese Microsoft guys, delivered a brilliant talk on <strong>Office 365 governance with PowerShell and CSOM</strong>.
<li><strong>Rodrigo Pinto</strong> (<a title="@ScoutmanPt" href="https://twitter.com/ScoutmanPt/">@ScoutmanPt</a>), fellow Portuguese MVP, got to present two great sessions: one on <strong>PowerShell Desired State Configuration</strong> and another one on techniques to <strong>migrate full trust solutions to the add-in model</strong>.
<li><strong>Edin Kapic</strong> (<a title="@ekapic" href="https://twitter.com/ekapic/">@ekapic</a>) made complex topics such as <strong>authentication and authorization</strong> seem simple as he showed how to build a <strong>custom claims provider</strong> for SharePoint. Pretty epic stuff.
<li><strong>Knut Relbe-Moe</strong> (<a title="@sharePTkarm" href="https://twitter.com/sharePTkarm/">@sharePTkarm</a>) dove deep into the <strong>Office 365 group</strong> and filled a room even on the last session slot of the conference.</li>
</ul>
<p>It was a nice surprise to find <strong>Pedro Serrano</strong> and <strong>Daniel Pereira</strong> from <a href="http://www.cavedigital.com" target="_blank">Cave Digital</a> showing off their <strong>Smart Governance</strong> product in the expo floor, and <strong>Alex Ferreira</strong> (<a href="https://twitter.com/alexaem" target="_blank">@alexaem</a>) and <strong>Tiago Duarte</strong> (<a href="https://twitter.com/tduarte85" target="_blank">@tduarte85</a>) attending the conference. It&#8217;s always great meeting Portuguese friends when we&#8217;re far away from home. </p>
<p>Overall it was a great experience and the team in charge of the organization has done a tremendous job. If I had to point out three highlights of the event, those would be: </p>
<ul>
<li>The venue for the awards gala, which was absolutely fantastic, and the venue for the conference. It will be very hard to top that next year.
<li>The networking opportunities.
<li>The speaker and session lineup, which included top Microsoft executives.</li>
</ul>
<p>Next year the European SharePoint Conference will take place in <strong>Vienna, Austria</strong>, on <strong>November 14-17</strong>, and I hope I can be there again.</p>
<p>The post <a href="https://blogit.create.pt/andrevala/2015/11/14/the-european-sharepoint-conference-2015-was-great/">the European SharePoint Conference 2015 was great!</a> appeared first on <a href="https://blogit.create.pt">Blog IT</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blogit.create.pt/andrevala/2015/11/14/the-european-sharepoint-conference-2015-was-great/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title>European SharePoint Conference 2015</title>
		<link>https://blogit.create.pt/andrevala/2015/04/10/european-sharepoint-conference-2015/</link>
					<comments>https://blogit.create.pt/andrevala/2015/04/10/european-sharepoint-conference-2015/#comments</comments>
		
		<dc:creator><![CDATA[André Vala]]></dc:creator>
		<pubDate>Fri, 10 Apr 2015 21:33:54 +0000</pubDate>
				<category><![CDATA[SharePoint 2013]]></category>
		<category><![CDATA[Office]]></category>
		<category><![CDATA[Microsoft 365]]></category>
		<category><![CDATA[Events]]></category>
		<category><![CDATA[Search]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[European SharePoint Conference]]></category>
		<guid isPermaLink="false">http://blogit.create.pt/andrevala/?p=1841</guid>

					<description><![CDATA[<p>The programme for the European SharePoint Conference 2015 was announced yesterday and guess what? I’ll be presenting a session on day 3 (November 12th) about Content Recommendation with SharePoint Search! You’ll also find my good friend and SharePoint MVP Rodrigo Pinto, as well as Nuno Oliveira Costa and João Oliveira, from Microsoft Portugal, among the [&#8230;]</p>
<p>The post <a href="https://blogit.create.pt/andrevala/2015/04/10/european-sharepoint-conference-2015/">European SharePoint Conference 2015</a> appeared first on <a href="https://blogit.create.pt">Blog IT</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>The <a title="ESPC 2015 Programme" href="http://www.sharepointeurope.com/conferences/2015/european-sharepoint-conference-2015-programme" target="_blank">programme</a> for the <a title="European SharePoint Conference 2015" href="http://www.sharepointeurope.com" target="_blank">European SharePoint Conference 2015</a> was announced yesterday and guess what? I’ll be presenting a session on day 3 (November 12<sup>th</sup>) about <a title="Content Recommendation with SharePoint Search" href="http://www.sharepointeurope.com/conferences/session/546/content-recommendation-with-sharepoint-search--level-300" target="_blank"><strong>Content Recommendation with SharePoint Search</strong></a>! You’ll also find my good friend and SharePoint MVP <a title="Rodrigo Pinto" href="http://mvp.microsoft.com/en-us/mvp/Rodrigo%20Pinto-4032603" target="_blank">Rodrigo Pinto</a>, as well as Nuno Oliveira Costa and João Oliveira, from Microsoft Portugal, among the speakers.</p>
<p>The conference will take place in <strong>Stockholm</strong>, Sweden, <strong>from November 9<sup>th</sup> to November 12<sup>th</sup></strong>, and has a fantastic session lineup from some of the best speakers in the business. The programme team did a great job putting it together. I know how hard it is to select 100 breakout sessions and 8 full-day tutorials out of several hundred candidates to build a balanced and interesting session lineup.</p>
<p>If you have not attended in previous years, I highly recommend it. It’s well worth it.<br />You still have 7 days to grab the ticket at <strong>Super Early Booking Rate</strong> (ends on April 17<sup>th</sup>) so, if you’re considering attending, don’t wait!</p>
<p>I’ll see you there!</p>
<p>The post <a href="https://blogit.create.pt/andrevala/2015/04/10/european-sharepoint-conference-2015/">European SharePoint Conference 2015</a> appeared first on <a href="https://blogit.create.pt">Blog IT</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blogit.create.pt/andrevala/2015/04/10/european-sharepoint-conference-2015/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>Querying SharePoint Search from PowerShell</title>
		<link>https://blogit.create.pt/andrevala/2014/12/11/querying-sharepoint-search-from-powershell/</link>
					<comments>https://blogit.create.pt/andrevala/2014/12/11/querying-sharepoint-search-from-powershell/#comments</comments>
		
		<dc:creator><![CDATA[André Vala]]></dc:creator>
		<pubDate>Thu, 11 Dec 2014 15:32:13 +0000</pubDate>
				<category><![CDATA[FAST Search]]></category>
		<category><![CDATA[SharePoint 2010]]></category>
		<category><![CDATA[PowerShell]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[Search]]></category>
		<category><![CDATA[SharePoint]]></category>
		<guid isPermaLink="false">http://blogit.create.pt/andrevala/?p=1791</guid>

					<description><![CDATA[<p>FAST Search for SharePoint 2010 (FS4SP) is a really powerful, flexible and scalable enterprise search engine. However, when compared with the search landscape in SharePoint 2013, it feels like a separate product, an add-on to SharePoint 2010 that gives you a more powerful alternative to the out-of-the-box search engine. When using FS4SP in a production [&#8230;]</p>
<p>The post <a href="https://blogit.create.pt/andrevala/2014/12/11/querying-sharepoint-search-from-powershell/">Querying SharePoint Search from PowerShell</a> appeared first on <a href="https://blogit.create.pt">Blog IT</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><strong>FAST Search for SharePoint 2010</strong> (FS4SP) is a really powerful, flexible and scalable enterprise search engine. However, when compared with the search landscape in SharePoint 2013, it feels like a separate product, an add-on to SharePoint 2010 that gives you a more powerful alternative to the out-of-the-box search engine.</p>
<p>When using FS4SP in a production environment, you need a separate farm just for FAST. That is, you need a set of servers where you install FS4SP and then you connect that FAST farm to a SharePoint farm, by means of two Search Service Applications. These FAST servers don’t have SharePoint installed on them and they have their own PowerShell snap-in that allows you to perform a whole bunch of administration tasks on FS4SP. </p>
<p>Suppose you want to query your search index, for testing or maintenance purposes, in PowerShell. The easiest solution would be to open your SharePoint 2010 Administration PowerShell console, and use the Server Side Object Model to create a new <code>KeywordQuery</code> object and invoke the <code>Execute</code> method on it. You can find many blog posts that teach how to do this. Here’s <a href="http://www.sharingminds.com.au/Blog/Post/21/Searching-SharePoint-with-PowerShell" target="_blank">one example</a>. If, for some reason, you need to run that PowerShell script from one of the FAST servers it won’t work because these servers don’t have SharePoint installed and are not part of the SharePoint farm, hence you can’t use the Server Object Model.</p>
<p>In this case, you’ll need to use the search web service, which can be called from any server as long as it can communicate with the SharePoint farm. The script below shows how you can do this.</p>
<p><code><strong>$WebApplicationURL</strong> = <font color="#c0504d">"http://myserver:9999"</font><br /><strong>$SearchServiceURL</strong> = <font color="#c0504d">"/_vti_bin/search.asmx"</font></p>
<p><font color="#008000"># Create a proxy to call the search web service</font><br /><strong>$SearchWS</strong> = New-WebServiceProxy -Uri (<strong>$WebApplicationURL</strong> + <strong>$SearchServiceURL</strong>) -UseDefaultCredential</p>
<p><font color="#008000"># Build the query XML. You can use FQL or KQL.</font><br /><strong>$queryXml</strong> = <font color="#666666">@"<br />&lt;QueryPacket Revision="1000"&gt;<br />&nbsp; &lt;Query&gt;<br />&nbsp;&nbsp;&nbsp; &lt;Context&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;QueryText language="en-US" type="FQL"&gt;SharePoint&lt;/QueryText&gt;<br />&nbsp;&nbsp;&nbsp; &lt;/Context&gt;<br />&nbsp;&nbsp;&nbsp; &lt;SupportedFormats Format="urn:Microsoft.Search.Response.Document.Document" /&gt;<br />&nbsp;&nbsp;&nbsp; &lt;ResultProvider&gt;FASTSearch&lt;/ResultProvider&gt;<br />&nbsp;&nbsp;&nbsp; &lt;Range&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;StartAt&gt;1&lt;/StartAt&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;Count&gt;100&lt;/Count&gt;<br />&nbsp;&nbsp;&nbsp; &lt;/Range&gt;<br />&nbsp;&nbsp;&nbsp; &lt;EnableStemming&gt;On&lt;/EnableStemming&gt;<br />&nbsp;&nbsp;&nbsp; &lt;EnableSpellCheck&gt;Off&lt;/EnableSpellCheck&gt;<br />&nbsp;&nbsp;&nbsp; &lt;IncludeSpecialTermsResults&gt;true&lt;/IncludeSpecialTermsResults&gt;<br />&nbsp;&nbsp;&nbsp; &lt;IncludeRelevantResults&gt;true&lt;/IncludeRelevantResults&gt;<br />&nbsp;&nbsp;&nbsp; &lt;ImplicitAndBehavior&gt;true&lt;/ImplicitAndBehavior&gt;<br />&nbsp;&nbsp;&nbsp; &lt;TrimDuplicates&gt;true&lt;/TrimDuplicates&gt;<br />&nbsp;&nbsp;&nbsp; &lt;Properties&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;Property name="Rank" /&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;Property name="Title" /&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;Property name="Author" /&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;Property name="Write" /&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;Property name="Path" /&gt;<br />&nbsp;&nbsp;&nbsp; &lt;/Properties&gt;<br />&nbsp; &lt;/Query&gt;<br />&lt;/QueryPacket&gt;<br />"@</font></p>
<p><font color="#008000"># call the web service</font><br /><strong>$results</strong> = <strong>$SearchWS</strong>.QueryEx(<strong>$queryXml</strong>)</p>
<p><font color="#008000"># process the results</font><br />if (<strong>$results</strong> -ne <strong>$null</strong> -And <strong>$results</strong>.Tables[<font color="#c0504d">"RelevantResults"</font>] -ne <strong>$null</strong>)<br />{<br />&nbsp;&nbsp;&nbsp; <font color="#008000"># check the result count (this page) and the total result count (all pages)</font><br />&nbsp;&nbsp;&nbsp; <strong>$resultCount</strong> = <strong>$results</strong>.Tables[<font color="#c0504d">"RelevantResults"</font>].Rows.Count<br />&nbsp;&nbsp;&nbsp; <strong>$totalCount</strong> = <strong>$results</strong>.Tables[<font color="#c0504d">"RelevantResults"</font>].ExtendedProperties[<font color="#c0504d">"TotalRows"</font>]<br />&nbsp;&nbsp;&nbsp; Write-Host <font color="#c0504d">"</font><font color="#c0504d">Retrieved $resultCount (from a total of $totalCount) results."</font><br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; <font color="#008000"># write the title of each result in the console window</font><br />&nbsp;&nbsp;&nbsp; foreach (<strong>$row</strong> in <strong>$results</strong>.Tables[<font color="#c0504d">"RelevantResults"</font>].Rows)<br />&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Write-Host <strong>$row</strong>[<font color="#c0504d">"Title"</font>]<br />&nbsp;&nbsp;&nbsp;&nbsp; }<br />}</code></p>
<p>The post <a href="https://blogit.create.pt/andrevala/2014/12/11/querying-sharepoint-search-from-powershell/">Querying SharePoint Search from PowerShell</a> appeared first on <a href="https://blogit.create.pt">Blog IT</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blogit.create.pt/andrevala/2014/12/11/querying-sharepoint-search-from-powershell/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title>FAST Search Tip #1: Enabling Stemming in PowerShell</title>
		<link>https://blogit.create.pt/andrevala/2012/04/25/fast-search-tip-1-enabling-stemming-in-powershell/</link>
					<comments>https://blogit.create.pt/andrevala/2012/04/25/fast-search-tip-1-enabling-stemming-in-powershell/#respond</comments>
		
		<dc:creator><![CDATA[André Vala]]></dc:creator>
		<pubDate>Wed, 25 Apr 2012 07:15:31 +0000</pubDate>
				<category><![CDATA[FAST Search]]></category>
		<category><![CDATA[SharePoint 2010]]></category>
		<category><![CDATA[Tips and Tricks]]></category>
		<category><![CDATA[Search]]></category>
		<category><![CDATA[SharePoint]]></category>
		<guid isPermaLink="false">http://blogcreate.azurewebsites.net/andrevala/?p=201</guid>

					<description><![CDATA[<p>Recently, I’ve been working with FAST Search for SharePoint 2010 and, although it’s a great search platform with pretty impressive features, I believe there are still too many manual installation and configurations steps, and too many of those features are only accessible through PowerShell. Don’t get me wrong, PowerShell is great and, by far, the [&#8230;]</p>
<p>The post <a href="https://blogit.create.pt/andrevala/2012/04/25/fast-search-tip-1-enabling-stemming-in-powershell/">FAST Search Tip #1: Enabling Stemming in PowerShell</a> appeared first on <a href="https://blogit.create.pt">Blog IT</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Recently, I’ve been working with <strong>FAST Search for SharePoint 2010</strong> and, although it’s a great search platform with pretty impressive features, I believe there are still too many manual installation and configurations steps, and too many of those features are only accessible through PowerShell. Don’t get me wrong, PowerShell is great and, by far, the best way to deploy your solution to the client’s environment, but a little more graphical UI wouldn’t hurt.</p>
<p>According to FAST Search’s <a href="http://technet.microsoft.com/en-us/library/ff393811.aspx" target="_blank">TechNet documentation</a>, you can use the <strong>Set-FASTSearchMetadataManagedProperty</strong> cmdlet to configure the main settings of a managed property. Among other things, you can enable stemming for a specific managed property. Here’s how it’s done:</p>
<p><code>$title = Get-FASTSearchMetadataManagedProperty –Name title      <br />Set-FASTSearchMetadataManagedProperty –ManagedProperty $title –StemmingEnabled $true</code></p>
<p>The problem is that this doesn’t work. The <strong>StemmingEnabled</strong> argument is actually ignored by the cmdlet so, we need to use a different approach. This is the right way:</p>
<p><code>$title = Get-FASTSearchMetadataManagedProperty –Name title      <br />$title.StemmingEnabled = 1       <br />$title.update()</code></p>
<p>Although Microsoft is yet to update TechNet’s documentation, it has published a support article in its knowledge base (<a href="http://support.microsoft.com/kb/2468430" target="_blank">KB2468430</a>) which describes this very solution. </p>
<p>The post <a href="https://blogit.create.pt/andrevala/2012/04/25/fast-search-tip-1-enabling-stemming-in-powershell/">FAST Search Tip #1: Enabling Stemming in PowerShell</a> appeared first on <a href="https://blogit.create.pt">Blog IT</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blogit.create.pt/andrevala/2012/04/25/fast-search-tip-1-enabling-stemming-in-powershell/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Integrate SharePoint Server 2007 with Search Server 2008</title>
		<link>https://blogit.create.pt/raulribeiro/2008/09/01/integrate-sharepoint-server-2007-with-search-server-2008/</link>
					<comments>https://blogit.create.pt/raulribeiro/2008/09/01/integrate-sharepoint-server-2007-with-search-server-2008/#respond</comments>
		
		<dc:creator><![CDATA[Raúl Ribeiro]]></dc:creator>
		<pubDate>Mon, 01 Sep 2008 05:29:00 +0000</pubDate>
				<category><![CDATA[Search Server 2008]]></category>
		<category><![CDATA[SharePoint 2007]]></category>
		<category><![CDATA[Search]]></category>
		<category><![CDATA[SharePoint]]></category>
		<guid isPermaLink="false">http://blogcreate.azurewebsites.net/raulribeiro/?p=961</guid>

					<description><![CDATA[<p>If you have a client that needs a SharePoint 2007 Farm, with for example one SharePoint front-end and a index server, Microsoft recommends that you install, in the index server,&#160;Search Server 2008. &#160;But to integrate this two products, you need to install the Infrastructure Update (Microsoft SharePoint Team Blog) on each server on the farm. [&#8230;]</p>
<p>The post <a href="https://blogit.create.pt/raulribeiro/2008/09/01/integrate-sharepoint-server-2007-with-search-server-2008/">Integrate SharePoint Server 2007 with Search Server 2008</a> appeared first on <a href="https://blogit.create.pt">Blog IT</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>If you have a client that needs a SharePoint 2007 Farm, with for example one SharePoint front-end and a index server, Microsoft recommends that you install, in the index server,&nbsp;Search Server 2008.</p>
<p>&nbsp;But to integrate this two products, you need to install the Infrastructure Update (<a href="http://blogs.msdn.com/sharepoint/archive/2008/07/15/announcing-availability-of-infrastructure-updates.aspx" target="_blank">Microsoft SharePoint Team Blog</a>) on each server on the farm.</p>
<p>To install Infrastructure Update, you should start on the Central Administration Server, then a message will appear saying that if you have more servers in the farm, you should install Infrastructure Update on them an then return to the Central Administration Server and continue with the installation.</p>
<p>In one of the my Infrastructure Update installations there was a strange problem with one of the servers and the installation was failing. After research and looking into SharePoint logs i discovered that it&#039;s necessary to have the Windows SharePoint Services Web Application&nbsp;start in all SharePoint Servers for the Infrastructure Update to be installed successfully.</p>
<p>At last if you have clients that only wants to use WSS 3.0 you should install Search Server 2008 Express, because it installs WSS 3.0 and also the Search Server index capabilities.</p>
<p>The post <a href="https://blogit.create.pt/raulribeiro/2008/09/01/integrate-sharepoint-server-2007-with-search-server-2008/">Integrate SharePoint Server 2007 with Search Server 2008</a> appeared first on <a href="https://blogit.create.pt">Blog IT</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blogit.create.pt/raulribeiro/2008/09/01/integrate-sharepoint-server-2007-with-search-server-2008/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
