<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Paresh's blog</title><link>http://blogs.msdn.com/b/pasen/</link><description>All things are difficult before they are easy- Thomas Fuller</description><dc:language>en-US</dc:language><generator>Telligent Evolution Platform Developer Build (Build: 5.6.50428.7875)</generator><item><title>Issue in crawl after certificate is updated in FAST Search for SharePoint 2010</title><link>http://blogs.msdn.com/b/pasen/archive/2012/07/31/issue-in-crawl-after-certificate-is-updated-in-fast-search-for-sharepoint-2010.aspx</link><pubDate>Tue, 31 Jul 2012 17:54:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10335267</guid><dc:creator>Paresh Sen</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/pasen/rsscomments.aspx?WeblogPostID=10335267</wfw:commentRss><comments>http://blogs.msdn.com/b/pasen/archive/2012/07/31/issue-in-crawl-after-certificate-is-updated-in-fast-search-for-sharepoint-2010.aspx#comments</comments><description>&lt;p&gt;Recently we observed that our crawl was continuing for a long time without any progress. On looking at the eventlog we found the below error:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&amp;nbsp;"Failed to connect to SERVER Failed to initialize session with document engine: Unable to resolve Contentdistributor."&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;We found that FAST certificate had expired. We updated the certificate and crawl ran without issue. however, next day crawl started behaving as earlier. this time the error logged in eventlog was different:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&amp;nbsp;"Failed to connect to SERVER. Failed to initialize session with document engine: Unable to find master Contentdistributor.&amp;nbsp; Ensure that all Contentdistributors in the ESP installation are listed when creating icontent_manager."&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;On investigating we found that during the updation of the certificate, new certificate was generated on the admin node and non-admin node was still retaining the old certificate.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Issue:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Certificate was not properly updated in all the FAST non-admin nodes.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Resolution :&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Exported the certificate from admin node&amp;nbsp;&lt;/li&gt;
&lt;li&gt;imported into non-admin node where secondary content distributor was running&amp;nbsp;&lt;/li&gt;
&lt;li&gt;stopped fast services on non-admin node&amp;nbsp;&lt;/li&gt;
&lt;li&gt;ran installer\scripts\replacedefaultcertificate.ps1 -thumbprint "certthumbprint"&amp;nbsp;&lt;/li&gt;
&lt;li&gt;started fast services on non-admin node&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;More details on managing certificates can be found &lt;a title="here" href="http://technet.microsoft.com/en-us/library/ff381244.aspx"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10335267" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/pasen/archive/tags/FAST+search+for+sharepoint+2010/">FAST search for sharepoint 2010</category></item><item><title>After full crawl no data is being retrieved: issues with index in FAST Search for SharePoint 2010</title><link>http://blogs.msdn.com/b/pasen/archive/2012/04/23/after-full-crawl-no-data-is-being-retrieved-issues-with-index-in-fast-search-for-sharepoint-2010.aspx</link><pubDate>Mon, 23 Apr 2012 10:25:41 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10296472</guid><dc:creator>Paresh Sen</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/pasen/rsscomments.aspx?WeblogPostID=10296472</wfw:commentRss><comments>http://blogs.msdn.com/b/pasen/archive/2012/04/23/after-full-crawl-no-data-is-being-retrieved-issues-with-index-in-fast-search-for-sharepoint-2010.aspx#comments</comments><description>&lt;p&gt;We recently came across this issue, we wanted to clean up our old indexes and build our environment. We rest the index from SharePoint and FAST server and did a full crawl. We observed that after the crawl is complete there were no data being retrieved in our searches. On looking further we observed that the FASTSearch conetnet collection and crawl logs are indicating that all the data has been crawled and indexed.&lt;/p&gt;
&lt;p&gt;We performed an incremental crawl and amazingly we got some of the data searchable i.e. whatever data was re-crawled was not retrievable. Looking at the indexer info we got something similar to below details:&lt;/p&gt;
&lt;p&gt;&amp;lt;documents size="26854297742.000000" total="XXXXX" indexed="YYYYY" not_indexed="ZZZZZ"/&amp;gt;&lt;/p&gt;
&lt;p&gt;Here XXXXX = YYYYY + ZZZZZ.&lt;/p&gt;
&lt;p&gt;This clearly showed that there were some issue with the indexes. We needed to re-index the data to get the issue fixed. we used the below command for the same:&lt;/p&gt;
&lt;div dir="ltr" id="imcontent"&gt;&lt;span style="color: #000000; font-family: 'Segoe UI'; font-size: 10pt; direction: ltr; word-wrap: break-word;" dir="ltr"&gt;indexeradmin resetindex -a&lt;/span&gt;&lt;/div&gt;
&lt;div dir="ltr"&gt;&lt;span style="color: #000000; font-family: 'Segoe UI'; font-size: 10pt; direction: ltr; word-wrap: break-word;" dir="ltr"&gt;&lt;/span&gt;&amp;nbsp;&lt;/div&gt;
&lt;div dir="ltr"&gt;&lt;span style="color: #000000; font-family: 'Segoe UI'; font-size: 10pt; direction: ltr; word-wrap: break-word;" dir="ltr"&gt;Once the processing completed, we got all the data back in search.&lt;/span&gt;&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10296472" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/pasen/archive/tags/FAST+search+for+sharepoint+2010/">FAST search for sharepoint 2010</category></item><item><title>Using SharePoint 2010 Search webservice in Javascript for FAST search for sharepoint 2010</title><link>http://blogs.msdn.com/b/pasen/archive/2012/04/01/using-sharepoint-2010-search-webservice-in-javascript-for-fast-search-for-sharepoint-2010.aspx</link><pubDate>Sat, 31 Mar 2012 18:52:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10289655</guid><dc:creator>Paresh Sen</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/pasen/rsscomments.aspx?WeblogPostID=10289655</wfw:commentRss><comments>http://blogs.msdn.com/b/pasen/archive/2012/04/01/using-sharepoint-2010-search-webservice-in-javascript-for-fast-search-for-sharepoint-2010.aspx#comments</comments><description>&lt;p&gt;Here we will see a simple example of calling SharePoint 2010 search web service in javascript. This example is for FAST search for SharePoint 2010, so we will use FQL in our query packet.&lt;/p&gt;
&lt;p&gt;We will be using &lt;a title="XMLHttpRequest" href="http://www.w3.org/TR/XMLHttpRequest/"&gt;XMLHttpRequest&lt;/a&gt; object for our request and response.&lt;/p&gt;
&lt;p&gt;We need to undertand the below XML structures for moving ahead:&lt;/p&gt;
&lt;p&gt;1] SOAP request for search service. Here, the request XML is for 'QueryEX' method. 'queryXml' will contain the actual query packet for search, as indicated by &lt;span style="background-color: #ff0000;"&gt;string&lt;/span&gt;.&lt;/p&gt;
&lt;p&gt;&amp;lt;?xml version="1.0" encoding="utf-8"?&amp;gt;&lt;br /&gt;&amp;lt;soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;lt;soap:Body&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;QueryEx xmlns="http://microsoft.com/webservices/OfficeServer/QueryService"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="background-color: #33cccc;"&gt;&amp;lt;queryXml&amp;gt;&lt;/span&gt;&lt;span style="background-color: #ff0000;" class="value"&gt;string&lt;/span&gt;&lt;span style="background-color: #33cccc;"&gt;&amp;lt;/queryXml&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/QueryEx&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;lt;/soap:Body&amp;gt;&lt;br /&gt;&amp;lt;/soap:Envelope&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;Let's assume this is represented by variable &lt;span style="background-color: #00ffff;"&gt;'requestXML'&lt;/span&gt;.&lt;/p&gt;
&lt;p&gt;2] SOAP response for search service. Here, the response XML is for 'QueryEX' method. 'QueryExResult' will contain the result, as indicated by &lt;span style="background-color: #ff0000;"&gt;xml&lt;/span&gt;.&lt;/p&gt;
&lt;p&gt;&amp;lt;?xml version="1.0" encoding="utf-8"?&amp;gt;&lt;br /&gt;&amp;lt;soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;lt;soap:Body&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;QueryExResponse xmlns="http://microsoft.com/webservices/OfficeServer/QueryService"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="background-color: #33cccc;"&gt;&amp;lt;QueryExResult&amp;gt;&amp;lt;xsd:schema&amp;gt;&lt;span class="value"&gt;schema&lt;/span&gt;&amp;lt;/xsd:schema&amp;gt;&lt;span style="background-color: #ff0000;" class="value"&gt;xml&lt;/span&gt;&amp;lt;/QueryExResult&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/QueryExResponse&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;lt;/soap:Body&amp;gt;&lt;br /&gt;&amp;lt;/soap:Envelope&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;Let's assume this is represented by variable &lt;span style="background-color: #00ffff;"&gt;'responseXML'&lt;/span&gt;.&lt;/p&gt;
&lt;p&gt;3] FQL Query Packet for search, indicating the search criteria, refiners, sorting, etc.&lt;/p&gt;
&lt;p&gt;&amp;lt;QueryPacket Revision=\"1000\"&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;lt;Query&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Context&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;QueryText language=\"en-US\"type=\"FQL\"&amp;gt;&lt;span style="background-color: #ff0000;"&gt;string(\"-\",Mode=\"AND\")&amp;lt;/&lt;/span&gt;QueryText&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/Context&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;SupportedFormats Format=\"urn:Microsoft.Search.Response.Document.Document\"/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;ResultProvider&amp;gt;FASTSearch&amp;lt;/ResultProvider&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Range&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;StartAt&amp;gt;1&amp;lt;/StartAt&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Count&amp;gt;20&amp;lt;/Count&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/Range&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;EnableStemming&amp;gt;true&amp;lt;/EnableStemming&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;EnableSpellCheck&amp;gt;Suggest&amp;lt;/EnableSpellCheck&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;IncludeSpecialTermsResults&amp;gt;true&amp;lt;/IncludeSpecialTermsResults&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;IncludeRelevantResults&amp;gt;true&amp;lt;/IncludeRelevantResults&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;ImplicitAndBehavior&amp;gt;true&amp;lt;/ImplicitAndBehavior&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;TrimDuplicates&amp;gt;true&amp;lt;/TrimDuplicates&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Properties&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Property name=\"Rank\"/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Property name=\"Title\" /&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Property name=\"Author\"/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Property name=\"Size\" /&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Property name=\"Path\" /&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Property name=\"Write\"/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Property name=\"SiteName\" /&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Property name=\"HitHighlightedSummary\"/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Property name=\"HitHighlightedProperties\"/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Property name=\"ContentClass\"/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Property name=\"IsDocument\"/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Property name=\"Url\" /&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Property name=\"FileExtension\"/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Property name=\"SpSiteUrl\"/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Property name=\"docvector\"/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Property name=\"fcocount\" /&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Property name=\"fcoid\"/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/Properties&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;lt;/Query&amp;gt;&lt;br /&gt;&amp;lt;/QueryPacket&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;Let's assume this is represented by variable &lt;span style="background-color: #00ffff;"&gt;'queryPacket'&lt;/span&gt;. this will replace the value &lt;span style="background-color: #ff0000;"&gt;string&lt;/span&gt; in step [1] for &lt;span style="background-color: #00ffff;"&gt;requestXML&lt;/span&gt;.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;We can write a function incorporating all the above for calling the service and getting the response as follows:&lt;/p&gt;
&lt;p&gt;function RetrieveSearchData()&lt;/p&gt;
&lt;p&gt;{&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //get the request object&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; var requestObject = new XMLHttpRequest();&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Initializes request and specifies the method, URL, and other information for the request.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; requestObject.open("POST", "http://SERVER:PORT/_vti_bin/search.asmx", false);&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //set request header&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; requestObject.setRequestHeader("Content-Type", "text/xml; charset=utf-8");&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Get FQL queryPacket along with the SOAP envelope&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; var packet = &lt;span style="background-color: #00ffff;"&gt;requestXML&lt;/span&gt;;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Sends an HTTP request to the server and receives a response&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; requestObject.send(packet);&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //process &lt;span style="background-color: #00ffff;"&gt;responseXML&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;}&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: Consolas; font-size: x-small;" face="Consolas" size="2"&gt;&lt;span style="font-family: Consolas; font-size: x-small;" face="Consolas" size="2"&gt;&lt;/span&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;There are multiple ways to achieve the above processing in AJAX, ASP.net or traditional C#. This example is just one of the ways to process SharePoint webservice in javascript code.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10289655" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/pasen/archive/tags/Javascript/">Javascript</category><category domain="http://blogs.msdn.com/b/pasen/archive/tags/FAST+search+for+sharepoint+2010/">FAST search for sharepoint 2010</category><category domain="http://blogs.msdn.com/b/pasen/archive/tags/SharePoint+2010+Search+webservice/">SharePoint 2010 Search webservice</category></item><item><title>Case study on Search driven applications for PLM and DAM systems</title><link>http://blogs.msdn.com/b/pasen/archive/2012/03/20/case-study-on-search-driven-applications-for-plm-and-dam-systems.aspx</link><pubDate>Tue, 20 Mar 2012 05:16:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10285260</guid><dc:creator>Paresh Sen</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/pasen/rsscomments.aspx?WeblogPostID=10285260</wfw:commentRss><comments>http://blogs.msdn.com/b/pasen/archive/2012/03/20/case-study-on-search-driven-applications-for-plm-and-dam-systems.aspx#comments</comments><description>&lt;p&gt;My post on search driven applications can be found &lt;a title="here" href="http://blogs.msdn.com/b/mscisind/archive/2012/03/15/exposing-external-systems-using-fast-search-for-sharepoint-2010-a-case-study-on-search-driven-applications.aspx"&gt;here&lt;/a&gt;.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10285260" width="1" height="1"&gt;</description></item><item><title>Developing Windows 8 app: Accessing configuration files deployed as part of deployment</title><link>http://blogs.msdn.com/b/pasen/archive/2012/02/04/developing-windows-8-app-accessing-configuration-files-deployed-as-part-of-deployment.aspx</link><pubDate>Fri, 03 Feb 2012 20:57:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10263860</guid><dc:creator>Paresh Sen</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/pasen/rsscomments.aspx?WeblogPostID=10263860</wfw:commentRss><comments>http://blogs.msdn.com/b/pasen/archive/2012/02/04/developing-windows-8-app-accessing-configuration-files-deployed-as-part-of-deployment.aspx#comments</comments><description>&lt;p&gt;While developing your windows 8 app, you may need default configurations. In order to make things more generic, you may choose to keep your configuration in a separate xml to be deployed along with the app. Here, we will see how we can access a file deployed as part of deployment and use it.&lt;/p&gt;
&lt;p&gt;In windows 8, access to folder system is provided by api's that are async in nature and 'Task' based. Therefore, we will use 'async' methods for this operation.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private async Task&amp;lt;SampleData&amp;gt; ReadFromConfigurationFile()&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;//get the package reference&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Windows.ApplicationModel.Package package = Windows.ApplicationModel.Package.Current;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//get installed location detail&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Windows.Storage.StorageFolder storageFolder = package.InstalledLocation;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Use serializer class&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; XmlSerializer serializer =&amp;nbsp;new XmlSerializer(typeof(SampleData));&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //file variable&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; StorageFile sampleFile =&amp;nbsp;null;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Get the file&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sampleFile = await storageFolder.GetFileAsync("ConfigurationStored.xml");&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; catch (FileNotFoundException ex)&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //handle exception&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//open file in read mode&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var file = await sampleFile.OpenAsync(FileAccessMode.Read);&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Read stream&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Stream inStream = Task.Run(() =&amp;gt; file.OpenRead()).Result;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return (SampleData)serializer.Deserialize(inStream);&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; catch (Exception ex)&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//handle exception&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; catch (Exception ex)&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //handle exception&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return null;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Note the use of await and async pattern for handling the asynchronous operation.&lt;/p&gt;
&lt;p&gt;If you want to modify the default value and write the file back, open file in write mode and after modification save the same at the installed location.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;More sample&amp;nbsp;on file access can be found at &lt;a href="http://code.msdn.microsoft.com/windowsapps/File-access-sample-d723e597"&gt;http://code.msdn.microsoft.com/windowsapps/File-access-sample-d723e597.&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10263860" width="1" height="1"&gt;</description></item><item><title>Implementing BCS connector based on enumerator methods</title><link>http://blogs.msdn.com/b/pasen/archive/2011/12/15/bcs-custom-connector-based-on-time-stamp.aspx</link><pubDate>Wed, 14 Dec 2011 19:47:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10247764</guid><dc:creator>Paresh Sen</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/pasen/rsscomments.aspx?WeblogPostID=10247764</wfw:commentRss><comments>http://blogs.msdn.com/b/pasen/archive/2011/12/15/bcs-custom-connector-based-on-time-stamp.aspx#comments</comments><description>&lt;p&gt;Business Connectivity Services (BCS) in SharePoint 2010 is all about accessing&amp;nbsp;data external to SharePoint. BCS provides read/write access to external data from line-of-business (LOB) systems, Web services, databases, and other external systems within Microsoft SharePoint 2010 and Microsoft Office 2010 applications.&amp;nbsp;BCS enhances the SharePoint platform&amp;rsquo;s capabilities with out-of-box features, services and tools that streamline development of solutions with deep integration of external data and services. Details can be found &lt;a title="here" href="http://msdn.microsoft.com/en-us/library/ee557658.aspx"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;p xmlns="http://www.w3.org/1999/xhtml"&gt;The core function of BDC is to provide connectivity support to the following types of external systems:&lt;/p&gt;
&lt;ul xmlns="http://www.w3.org/1999/xhtml"&gt;
&lt;li&gt;
&lt;p&gt;Databases&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Web/WCF services&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Microsoft .NET Framework connectivity assemblies&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Custom data sources&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;There are scenarios when we wish to do custom implementation to achieve the desired processing. This can be achieved by developing Visual Studio based code solutions. We add up code to do the required processing for implementing List\Item operations. These solutions work great and provide a lot of flexibility.&lt;/p&gt;
&lt;p&gt;However, in scenarios where BCS is used to pull data and index in SharePoint for implementing search driven applications, we need constant updation of data from the external system. In such systems we need incremental update to work to ensure CRUD operations. In such a scenario we need to create solutions that implement ChangedIDEnumerator\DeletedIDEnumerator&amp;nbsp;apart from general List (IDEnumerator), Item (ReadItem) operations.&lt;/p&gt;
&lt;p&gt;IDEnumerator - Used for list operation&lt;/p&gt;
&lt;p&gt;ChangedIDEnumerator - Identifies the modified items&lt;/p&gt;
&lt;p&gt;DeletedIDEnumerator - Identifies the deleted items&lt;/p&gt;
&lt;p&gt;ReadItem - used for Item operation&lt;/p&gt;
&lt;p&gt;apart from the above we may need to implement streamaccessor method for ingesting streams for indexing like documents.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Here, we will have a look on the methods and the mapping in model file.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style="text-decoration: underline;"&gt;&lt;strong&gt;IDEnumerator&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Syntax: public static IEnumerable&amp;lt;EntityType&amp;gt; IDEnumerator()&lt;/p&gt;
&lt;p&gt;Returns an enumerator of EntityType. This will have all the items that need to be indexed. This can be infered as the finder method.&lt;/p&gt;
&lt;p&gt;Model file mapping:&lt;/p&gt;
&lt;pre&gt;            &amp;lt;Method IsStatic="false" Name="&lt;strong&gt;IDEnumerator&lt;/strong&gt;"&amp;gt;&lt;br /&gt;              &amp;lt;Parameters&amp;gt;&lt;br /&gt;                &amp;lt;Parameter Direction="Return" Name="returnParameter"&amp;gt;&lt;br /&gt;                  &amp;lt;TypeDescriptor TypeName="System.Collections.Generic.IEnumerable`1[&lt;strong&gt;EntityType Class details&lt;/strong&gt;]" IsCollection="true" Name="&lt;strong&gt;ListName&lt;/strong&gt;"&amp;gt;&lt;br /&gt;                    &amp;lt;TypeDescriptors&amp;gt;&lt;br /&gt;                      ...&lt;br /&gt;                    &amp;lt;/TypeDescriptors&amp;gt;&lt;br /&gt;                  &amp;lt;/TypeDescriptor&amp;gt;&lt;br /&gt;                &amp;lt;/Parameter&amp;gt;&lt;br /&gt;              &amp;lt;/Parameters&amp;gt;&lt;br /&gt;              &amp;lt;MethodInstances&amp;gt;&lt;br /&gt;                &amp;lt;MethodInstance Type="&lt;strong&gt;IdEnumerator&lt;/strong&gt;" ReturnParameterName="returnParameter" Default="true" Name="&lt;strong&gt;EnumeratorName&lt;/strong&gt;" DefaultDisplayName="&lt;strong&gt;DisplayName&lt;/strong&gt;"&amp;gt;&lt;br /&gt;                  &amp;lt;Properties&amp;gt;&lt;br /&gt;                    &amp;lt;Property Name="RootFinder" Type="System.String"&amp;gt;x&amp;lt;/Property&amp;gt;                    &lt;br /&gt;                  &amp;lt;/Properties&amp;gt;&lt;br /&gt;                &amp;lt;/MethodInstance&amp;gt;&lt;br /&gt;              &amp;lt;/MethodInstances&amp;gt;&lt;br /&gt;            &amp;lt;/Method&amp;gt;&lt;/pre&gt;
&lt;p&gt;&lt;br /&gt;&lt;span style="text-decoration: underline;"&gt;&lt;strong&gt;ChangedIDEnumerator&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;div&gt;
&lt;p&gt;Syntax: public static IEnumerable&amp;lt;EntityType&amp;gt; ChangedIDEnumerator(DateTime LastRunDate)&lt;/p&gt;
&lt;p&gt;Returns an enumerator of EntityType. it contains the modified items. LastRunDate indicates time that will be used as&amp;nbsp;reference for this crawl for finding the modified items. We can map this value or can use another parameter (configuration parameter, or reading from external ways) for getting the reference.&lt;/p&gt;
&lt;p&gt;Model file mapping:&lt;/p&gt;
&lt;pre&gt;         &amp;lt;Method IsStatic="false" Name="&lt;strong&gt;ChangedIDEnumerator&lt;/strong&gt;"&amp;gt;&lt;br /&gt;              &amp;lt;FilterDescriptors&amp;gt;&lt;br /&gt;                &amp;lt;FilterDescriptor Name="LastRunDate" Type="InputOutput"&amp;gt;&lt;br /&gt;                  &amp;lt;Properties&amp;gt;&lt;br /&gt;                    &amp;lt;Property Name="SynchronizationCookie" Type="System.String"&amp;gt;LastModifiedDate&amp;lt;/Property&amp;gt;&lt;br /&gt;                  &amp;lt;/Properties&amp;gt;&lt;br /&gt;                &amp;lt;/FilterDescriptor&amp;gt;&lt;br /&gt;                &amp;lt;FilterDescriptor Name="FilterDescriptor" Type="Timestamp" /&amp;gt;&lt;br /&gt;              &amp;lt;/FilterDescriptors&amp;gt;&lt;br /&gt;              &amp;lt;Parameters&amp;gt;&lt;br /&gt;                &amp;lt;Parameter Name="@LastRunDate" Direction="InOut"&amp;gt;&lt;br /&gt;                  &amp;lt;TypeDescriptor Name="LastRunDateTypeDescriptor" TypeName="System.DateTime" AssociatedFilter="LastRunDate"&amp;gt;&lt;br /&gt;                    &amp;lt;Interpretation&amp;gt;&lt;br /&gt;                      &amp;lt;NormalizeDateTime LobDateTimeMode="Local" /&amp;gt;&lt;br /&gt;                    &amp;lt;/Interpretation&amp;gt;&lt;br /&gt;                  &amp;lt;/TypeDescriptor&amp;gt;&lt;br /&gt;                &amp;lt;/Parameter&amp;gt;&lt;br /&gt;                &amp;lt;Parameter Direction="Return" Name="returnParameter"&amp;gt;&lt;br /&gt;                  &amp;lt;TypeDescriptor TypeName="System.Collections.Generic.IEnumerable`1[&lt;strong&gt;EntityType Class details&lt;/strong&gt;]" IsCollection="true" Name="&lt;strong&gt;ListName&lt;/strong&gt;"&amp;gt;&lt;br /&gt;                    ...&lt;br /&gt;                  &amp;lt;/TypeDescriptor&amp;gt;&lt;br /&gt;                &amp;lt;/Parameter&amp;gt;&lt;br /&gt;              &amp;lt;/Parameters&amp;gt;&lt;br /&gt;              &amp;lt;MethodInstances&amp;gt;&lt;br /&gt;                &amp;lt;MethodInstance Type="&lt;strong&gt;ChangedIdEnumerator&lt;/strong&gt;" ReturnParameterName="returnParameter" Default="true" Name="&lt;strong&gt;OperationName&lt;/strong&gt;" DefaultDisplayName="&lt;strong&gt;DisplayName&lt;/strong&gt;" /&amp;gt;&lt;br /&gt;              &amp;lt;/MethodInstances&amp;gt;&lt;br /&gt;            &amp;lt;/Method&amp;gt;&lt;/pre&gt;
&lt;pre&gt;&amp;nbsp;&lt;/pre&gt;
&lt;pre&gt;&lt;span style="text-decoration: underline;"&gt;&lt;strong&gt;DeletedIDEnumerator&lt;/strong&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;p&gt;Syntax: public static IEnumerable&amp;lt;EntityType&amp;gt; DeletedIDEnumerator(DateTime LastRunDate)&lt;/p&gt;
&lt;p&gt;Returns an enumerator of EntityType. it contains the deleted items. LastRunDate indicates time that will be used as reference for this crawl for finding the deleted items. We can map this value or can use another parameter (configuration parameter, or reading from external ways) for getting the reference.&lt;/p&gt;
&lt;pre&gt;        &amp;lt;Method IsStatic="false" Name="&lt;strong&gt;DeletedIDEnumerator&lt;/strong&gt;"&amp;gt;&lt;br /&gt;              &amp;lt;FilterDescriptors&amp;gt;&lt;br /&gt;                &amp;lt;FilterDescriptor Name="LastRunDate" Type="InputOutput"&amp;gt;&lt;br /&gt;                  &amp;lt;Properties&amp;gt;&lt;br /&gt;                    &amp;lt;Property Name="SynchronizationCookie" Type="System.String"&amp;gt;LastModifiedDate&amp;lt;/Property&amp;gt;&lt;br /&gt;                  &amp;lt;/Properties&amp;gt;&lt;br /&gt;                &amp;lt;/FilterDescriptor&amp;gt;&lt;br /&gt;                &amp;lt;FilterDescriptor Name="FilterDescriptor" Type="Timestamp" /&amp;gt;&lt;br /&gt;              &amp;lt;/FilterDescriptors&amp;gt;&lt;br /&gt;              &amp;lt;Parameters&amp;gt;&lt;br /&gt;                &amp;lt;Parameter Name="@LastRunDate" Direction="InOut"&amp;gt;&lt;br /&gt;                  &amp;lt;TypeDescriptor Name="LastRunDateTypeDescriptor" TypeName="System.DateTime" AssociatedFilter="LastRunDate"&amp;gt;&lt;br /&gt;                    &amp;lt;Interpretation&amp;gt;&lt;br /&gt;                      &amp;lt;NormalizeDateTime LobDateTimeMode="Local" /&amp;gt;&lt;br /&gt;                    &amp;lt;/Interpretation&amp;gt;&lt;br /&gt;                  &amp;lt;/TypeDescriptor&amp;gt;&lt;br /&gt;                &amp;lt;/Parameter&amp;gt;&lt;br /&gt;                &amp;lt;Parameter Direction="Return" Name="returnParameter"&amp;gt;&lt;br /&gt;                  &amp;lt;TypeDescriptor TypeName="System.Collections.Generic.IEnumerable`1[&lt;strong&gt;EntityType class details&lt;/strong&gt;]" IsCollection="true" Name="&lt;strong&gt;ListName&lt;/strong&gt;"&amp;gt;&lt;br /&gt;                    &amp;lt;TypeDescriptors&amp;gt;&lt;br /&gt;                      ...&lt;br /&gt;                    &amp;lt;/TypeDescriptors&amp;gt;&lt;br /&gt;                  &amp;lt;/TypeDescriptor&amp;gt;&lt;br /&gt;                &amp;lt;/Parameter&amp;gt;&lt;br /&gt;              &amp;lt;/Parameters&amp;gt;&lt;br /&gt;              &amp;lt;MethodInstances&amp;gt;&lt;br /&gt;                &amp;lt;MethodInstance Type="&lt;strong&gt;DeletedIdEnumerator&lt;/strong&gt;" ReturnParameterName="returnParameter" Default="true" Name="&lt;strong&gt;OperationName&lt;/strong&gt;" DefaultDisplayName="&lt;strong&gt;DisplayName&lt;/strong&gt;" /&amp;gt;&lt;br /&gt;              &amp;lt;/MethodInstances&amp;gt;&lt;br /&gt;            &amp;lt;/Method&amp;gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style="text-decoration: underline;"&gt;&lt;strong&gt;ReadItem&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Syntax: public static Entity ReadItem(string ID)&lt;/p&gt;
&lt;p&gt;Returns type entity. it contains the&amp;nbsp;detail of an item.&amp;nbsp;ID is the unique identifier for the item.&lt;/p&gt;
&lt;p&gt;Mapping in model:&lt;/p&gt;
&lt;pre&gt;       &amp;lt;Method IsStatic="false" Name="&lt;strong&gt;ReadItem&lt;/strong&gt;"&amp;gt;&lt;br /&gt;              &amp;lt;Parameters&amp;gt;&lt;br /&gt;                &amp;lt;Parameter Name="ID" Direction="In"&amp;gt;&lt;br /&gt;                  &amp;lt;TypeDescriptor Name="ID" TypeName="System.String" IdentifierEntityName="&lt;strong&gt;ENTITY&lt;/strong&gt;" IdentifierEntityNamespace="&lt;strong&gt;NAMESPACE&lt;/strong&gt;" IdentifierName="&lt;strong&gt;ID&lt;/strong&gt;"&amp;gt;&lt;br /&gt;                  &amp;lt;/TypeDescriptor&amp;gt;&lt;br /&gt;                &amp;lt;/Parameter&amp;gt;&lt;br /&gt;                &amp;lt;Parameter Name="returnParameter" Direction="Return"&amp;gt;&lt;br /&gt;                  ...&lt;br /&gt;                &amp;lt;/Parameter&amp;gt;&lt;br /&gt;              &amp;lt;/Parameters&amp;gt;&lt;br /&gt;              &amp;lt;MethodInstances&amp;gt;&lt;br /&gt;                &amp;lt;MethodInstance Name="&lt;strong&gt;ReadItem&lt;/strong&gt;" Type="SpecificFinder" ReturnParameterName="returnParameter" Default="true" DefaultDisplayName="&lt;strong&gt;DisplayName&lt;/strong&gt;"&amp;gt;&lt;br /&gt;                  &amp;lt;Properties&amp;gt;&lt;br /&gt;                    &amp;lt;Property Name="LastDesignedOfficeItemType" Type="System.String"&amp;gt;None&amp;lt;/Property&amp;gt;&lt;br /&gt;                    &amp;lt;Property Name="WindowsSecurityDescriptorField" Type="System.String"&amp;gt;&lt;strong&gt;SecurityDescriptor&lt;/strong&gt;&amp;lt;/Property&amp;gt;&lt;br /&gt;                  &amp;lt;/Properties&amp;gt;&lt;br /&gt;                &amp;lt;/MethodInstance&amp;gt;&lt;br /&gt;              &amp;lt;/MethodInstances&amp;gt;&lt;br /&gt;            &amp;lt;/Method&amp;gt;&lt;/pre&gt;
&lt;pre&gt;Here, SecurityDescriptor is used for implementing security at record level.&lt;/pre&gt;
&lt;pre&gt;&amp;nbsp;&lt;/pre&gt;
&lt;pre&gt;&lt;span style="text-decoration: underline;"&gt;&lt;strong&gt;StreamAccessor&lt;/strong&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;Syntax: public Stream GetStream(string ID)&lt;/pre&gt;
&lt;pre&gt;GetStream can be used if we intend to ingest documents in the crawl process. ID is the unique identifier.&lt;/pre&gt;
&lt;pre&gt;Mapping in Model:&lt;/pre&gt;
&lt;pre&gt;          &amp;lt;Method IsStatic="false" Name="&lt;strong&gt;GetStream&lt;/strong&gt;"&amp;gt;&lt;br /&gt;              &amp;lt;Parameters&amp;gt;&lt;br /&gt;                &amp;lt;Parameter Name="ID" Direction="In"&amp;gt;&lt;br /&gt;                  &amp;lt;TypeDescriptor Name="&lt;strong&gt;ID&lt;/strong&gt;" TypeName="System.String" IdentifierEntityName="&lt;strong&gt;ENTITY&lt;/strong&gt;" IdentifierEntityNamespace="&lt;strong&gt;NAMESPACE&lt;/strong&gt;" IdentifierName="&lt;strong&gt;ID&lt;/strong&gt;" /&amp;gt;&lt;br /&gt;                &amp;lt;/Parameter&amp;gt;&lt;br /&gt;                &amp;lt;Parameter Name="returnParameter" Direction="Return"&amp;gt;&lt;br /&gt;                  &amp;lt;TypeDescriptor Name="returnParameterTypeDescriptor" TypeName="System.IO.Stream" /&amp;gt;&lt;br /&gt;                &amp;lt;/Parameter&amp;gt;&lt;br /&gt;              &amp;lt;/Parameters&amp;gt;&lt;br /&gt;              &amp;lt;MethodInstances&amp;gt;&lt;br /&gt;                &amp;lt;MethodInstance Name="MethodName" Type="&lt;strong&gt;StreamAccessor&lt;/strong&gt;" ReturnParameterName="returnParameter"&amp;gt;&lt;br /&gt;                  &amp;lt;Properties&amp;gt;&lt;br /&gt;                   ...&lt;br /&gt;                  &amp;lt;/Properties&amp;gt;&lt;br /&gt;                &amp;lt;/MethodInstance&amp;gt;&lt;br /&gt;              &amp;lt;/MethodInstances&amp;gt;&lt;br /&gt;            &amp;lt;/Method&amp;gt;&lt;/pre&gt;
&lt;pre&gt;&amp;nbsp;&lt;/pre&gt;
&lt;pre&gt;More on custom connectors can be found &lt;a title="here" href="http://msdn.microsoft.com/en-us/library/ff953161.aspx"&gt;here&lt;/a&gt;.&lt;/pre&gt;
&lt;pre&gt;Another great post on BCS can be found &lt;a title="here" href="http://msdn.microsoft.com/en-us/magazine/ee819133.aspx"&gt;here&lt;/a&gt;.&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10247764" width="1" height="1"&gt;</description></item><item><title>Set-ExecutionPolicy : Windows PowerShell updated your execution policy successfully, but the setting is overridden by a policy defined at a more specific scope!!!</title><link>http://blogs.msdn.com/b/pasen/archive/2011/12/07/set-executionpolicy-windows-powershell-updated-your-execution-policy-successfully-but-the-setting-is-overridden-by-a-policy-defined-at-a-more-specific-scope.aspx</link><pubDate>Wed, 07 Dec 2011 14:50:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10245079</guid><dc:creator>Paresh Sen</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/pasen/rsscomments.aspx?WeblogPostID=10245079</wfw:commentRss><comments>http://blogs.msdn.com/b/pasen/archive/2011/12/07/set-executionpolicy-windows-powershell-updated-your-execution-policy-successfully-but-the-setting-is-overridden-by-a-policy-defined-at-a-more-specific-scope.aspx#comments</comments><description>&lt;div class="title"&gt;You have reached to this blog post probably after hitting into the below issue on executing:&lt;/div&gt;
&lt;div class="title"&gt;&lt;strong&gt;Set-ExecutionPolicy "RemoteSigned"&lt;/strong&gt;&lt;/div&gt;
&lt;div class="title"&gt;&lt;strong&gt;&lt;/strong&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class="title"&gt;&lt;strong&gt;Error thrown may be as follows:&lt;/strong&gt;&lt;/div&gt;
&lt;p&gt;&lt;em&gt;Set-ExecutionPolicy : Windows PowerShell updated your execution policy successfully, but the setting is overridden by a policy defined at a more specific scope. Due to the override, your shell will retain its current effective execution policy of "Unrestricted". Type "Get-ExecutionPolicy -List" to view your execution policy settings. For more information, please see "Get-Help Set-ExecutionPolicy.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;strong&gt;"Set-ExecutionPolicy" cmdlet is used for changing the user preference for the Windows PowerShell execution policy. details can be found &lt;a title="here" href="http://technet.microsoft.com/en-us/library/dd347628.aspx"&gt;here&lt;/a&gt;.&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;If the current logged-in user is an administrator on the system with proper access but still getting the above issue, &lt;a href="http://blog.whatsupduck.net/2010/09/issues-with-configuring-powershell.html"&gt;following&lt;/a&gt; blogpost instruction may be helpful in re-setting group policy.&lt;/p&gt;
&lt;p&gt;However, if the issue persists and "Get-ExecutionPolicy -List" command shows something similar as shown below:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; MachinePolicy = RemoteSigned&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; UserPolicy&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;=&amp;nbsp;Undefined&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;em&gt;&lt;strong&gt;CurrentUser&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;= Unrestricted&lt;/strong&gt;&lt;/em&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; LocalMachine &amp;nbsp;= RemoteSigned&lt;/p&gt;
&lt;p&gt;Execute the below commands in powershell commandline as an administrator:&lt;/p&gt;
&lt;p&gt;Set-ExecutionPolicy "RemoteSigned" -Scope Process -Confirm:$false&lt;/p&gt;
&lt;p&gt;Set-ExecutionPolicy "RemoteSigned" -Scope CurrentUser -Confirm:$false&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;strong&gt;This will set the execution policy for the given scope.&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;On executing "Get-ExecutionPolicy -List", we should now see the below:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; MachinePolicy = RemoteSigned&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; UserPolicy&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = Undefined&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Process&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = RemoteSigned&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; CurrentUser&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = RemoteSigned&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; LocalMachine&amp;nbsp; = RemoteSigned&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10245079" width="1" height="1"&gt;</description></item><item><title>How to increase relevancy of FAST search results for "Phrase" query</title><link>http://blogs.msdn.com/b/pasen/archive/2011/04/30/how-to-increase-relevancy-of-fast-search-results-for-quot-phrase-quot-query.aspx</link><pubDate>Sat, 30 Apr 2011 15:20:05 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10159735</guid><dc:creator>Paresh Sen</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/pasen/rsscomments.aspx?WeblogPostID=10159735</wfw:commentRss><comments>http://blogs.msdn.com/b/pasen/archive/2011/04/30/how-to-increase-relevancy-of-fast-search-results-for-quot-phrase-quot-query.aspx#comments</comments><description>&lt;p&gt;Fast Search for SharePoint 2010 indexes data fed to the system during crawl. on query these indexes are used to retrieve relevant results. However, when the indexed data is very high and "&lt;strong&gt;Phrase&lt;/strong&gt;" search is used we may not get as relevant results as expected.&lt;/p&gt;
&lt;p&gt;For example, in indexed data few words like "&lt;strong&gt;ABC&lt;/strong&gt;" are very common, phrase searches involving these words may show less relevant results than expected. Suppose we search with &lt;em&gt;&lt;strong&gt;ABC XYZ&lt;/strong&gt;&lt;/em&gt; or &lt;em&gt;&lt;strong&gt;"ABC XYZ"&lt;/strong&gt;&lt;/em&gt; or &lt;em&gt;&lt;strong&gt;"XYZ ABC"&lt;/strong&gt;&lt;/em&gt;, ideally we should get different result set based on the existence of these phrases in indexed data. However, "Phrase" search behavior changes for very frequent indexed keywords like &lt;strong&gt;ABC &lt;/strong&gt;and it treats the Phrase "&lt;strong&gt;ABC XYZ&lt;/strong&gt;" as&lt;strong&gt; ABC &lt;em&gt;&lt;span style="text-decoration: underline;"&gt;AND&lt;/span&gt; &lt;/em&gt;XYZ&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Expected behavior can be ensured by changing &lt;b&gt;PositionStopWordThreshold &lt;/b&gt;and&lt;b&gt; StopWordThreshold
&lt;/b&gt;values for RankProfile in FAST admin node. New value should be changed based on the specific scenario of the target farm and volume of data. Default value for Rank profile are listed below:&lt;/p&gt;
&lt;table border="0" cellpadding="0" cellspacing="0"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td valign="top" width="213"&gt;
&lt;p&gt;&lt;strong&gt;Rank
  Profile parameter&lt;/strong&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td valign="top" width="213"&gt;
&lt;p&gt;&lt;strong&gt;Original
  value&lt;/strong&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td valign="top" width="213"&gt;
&lt;p&gt;PositionStopWordThreshold&lt;/p&gt;
&lt;/td&gt;
&lt;td valign="top" width="213"&gt;
&lt;p&gt;20000000&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td valign="top" width="213"&gt;
&lt;p&gt;StopWordThreshold&lt;/p&gt;
&lt;/td&gt;
&lt;td valign="top" width="213"&gt;
&lt;p&gt;2000000&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;a href="http://technet.microsoft.com/en-us/library/ff191251.aspx"&gt;Follow this msdnlink for details.&lt;br /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;In order to do the changes, need to
execute below in FAST Server management powershell:&lt;/p&gt;
&lt;p&gt;&lt;b&gt;$RankProfile
= Get-FASTSearchMetadataRankProfile -Name &amp;lt;RankProfileName&amp;gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;$RankProfile.StopWordThreshold
= &amp;lt;new integer value&amp;gt;&lt;br /&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;$RankProfile.PositionStopWordThreshold&amp;nbsp;
= &amp;lt;new integer value&amp;gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;$RankProfile.Update()&lt;/b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;Restart&amp;nbsp;
FAST services.&lt;/p&gt;
&lt;p&gt;There are few downside to these changes and must be analyzed before the changes( &lt;a href="http://technet.microsoft.com/en-us/library/ff393755.aspx"&gt;Follow this msdnlink for details)&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Increase in CPU usage&lt;/li&gt;
&lt;li&gt;Slower Search Performance&lt;/li&gt;
&lt;/ul&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10159735" width="1" height="1"&gt;</description></item><item><title>Crawl fails with error "The item may be too large or corrupt. You may also verify that you have the latest version of this IFilter"</title><link>http://blogs.msdn.com/b/pasen/archive/2011/04/06/crawl-fails-with-error-quot-the-item-may-be-too-large-or-corrupt-you-may-also-verify-that-you-have-the-latest-version-of-this-ifilter-quot.aspx</link><pubDate>Wed, 06 Apr 2011 09:10:44 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10150367</guid><dc:creator>Paresh Sen</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/pasen/rsscomments.aspx?WeblogPostID=10150367</wfw:commentRss><comments>http://blogs.msdn.com/b/pasen/archive/2011/04/06/crawl-fails-with-error-quot-the-item-may-be-too-large-or-corrupt-you-may-also-verify-that-you-have-the-latest-version-of-this-ifilter-quot.aspx#comments</comments><description>&lt;p&gt;Our crawl failed for large files with crawl error : &lt;strong&gt;"The item may be too large or corrupt. You may also verify that you have the latest version of this IFilter".&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;In eventviewer of the crawl component observed error: &lt;strong&gt;"The search service stopped the filter daemon because it was consuming too many resources. A new daemon will automatically be started, and no user action is required."&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;This got resolved following the &lt;a href="http://social.technet.microsoft.com/Forums/en-US/sharepointsearch/thread/138e2e68-9bf7-4a1c-9519-ace6a78ddaa5/" title="suggested changes"&gt;suggested changes &lt;/a&gt;for increasing registry values for &lt;strong&gt;DedicatedFilterProcessMemoryQuota&lt;/strong&gt;, &lt;strong&gt;FilterProcessMemoryQuota&lt;/strong&gt;, &lt;strong&gt;FolderHighPriority.&lt;/strong&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10150367" width="1" height="1"&gt;</description></item><item><title>Resolving error "No snap-ins have been registered for windows powershell version 2"</title><link>http://blogs.msdn.com/b/pasen/archive/2011/04/06/resolving-error-quot-no-snap-ins-have-been-registered-for-windows-powershell-version-2-quot.aspx</link><pubDate>Wed, 06 Apr 2011 08:18:53 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10150348</guid><dc:creator>Paresh Sen</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/pasen/rsscomments.aspx?WeblogPostID=10150348</wfw:commentRss><comments>http://blogs.msdn.com/b/pasen/archive/2011/04/06/resolving-error-quot-no-snap-ins-have-been-registered-for-windows-powershell-version-2-quot.aspx#comments</comments><description>&lt;p&gt;After doing some update\configuration changes in SharePoint Farm, I was getting this issue when trying to open "SharePoint 2010 Management Shell":&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Add-PSSnapin : No snap-ins have been registered for windows powershell version 2&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;This was resolved by changing the path of the powershell.exe used to initiate the management shell. In properties -&amp;gt; Shortcut -&amp;gt; Target, powershell.exe was pointing to sysWOW64 folder. I changed the same to point to System32 [c:\windows\system32\windowspowershell\v1.0\powershell.exe].&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10150348" width="1" height="1"&gt;</description></item><item><title>Module (WebAnalyzer) at “server[FQDN]:13300” is not responding</title><link>http://blogs.msdn.com/b/pasen/archive/2011/03/25/module-webanalyzer-at-server-fqdn-13300-is-not-responding.aspx</link><pubDate>Fri, 25 Mar 2011 18:15:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10146012</guid><dc:creator>Paresh Sen</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/pasen/rsscomments.aspx?WeblogPostID=10146012</wfw:commentRss><comments>http://blogs.msdn.com/b/pasen/archive/2011/03/25/module-webanalyzer-at-server-fqdn-13300-is-not-responding.aspx#comments</comments><description>&lt;p&gt;We came across an interesting issue related to crawl in SharePoint\FAST farm. In one of the farm set-up with distributed nodes for both SharePoint and FAST, crawl was running&amp;nbsp;very slow.&amp;nbsp;It was taking almost 5 times the actual time &amp;nbsp;of completion. All services in SharePoint and FAST were running as expected and system resources were well within acceptable range. &lt;/p&gt;
&lt;p&gt;In eventviewer of FAST admin node we observed consistent entry&amp;nbsp;for the warning: &lt;strong&gt;Module (WebAnalyzer) at &amp;ldquo;server[FQDN]:13300&amp;rdquo; is not responding. &lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Looking at the &lt;strong&gt;webanalyzer.log&lt;/strong&gt; file under &lt;span style="color: #000000;"&gt;&lt;strong&gt;var\log\webanalyzer &lt;/strong&gt;we found below entries:&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style="color: #000000;"&gt;&lt;span style="font-family: Tahoma; font-size: x-small;"&gt;&amp;nbsp;Couldn't connect to the ConfigServer&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="color: #000000;"&gt;&lt;span style="font-family: Tahoma; font-size: x-small;"&gt;&amp;nbsp;Missing nctrls on these hosts&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;span style="color: #000000;"&gt;&lt;strong&gt;"nctrl status"&lt;/strong&gt; was showing webanalyzer as running, however "&lt;strong&gt;waadmin showstatus&lt;/strong&gt;" failed to retrieve the details.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #000000;"&gt;This issue turn out to be due to mismatch in hostname while configuring the multiple nodes in FAST farm. FAST installation is case sensitive wrt to server names. This &lt;a href="http://technet.microsoft.com/nb-no/library/ff381240(en-us).aspx#BKMK_ConfigureAMultipleServerDeployment" title="msdn"&gt;msdn&lt;/a&gt; reference talks about the same.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #000000;"&gt;We fixed this issue following the below steps:&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style="color: #000000;"&gt;stop services "nctrl stop"&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="color: #000000;"&gt;Edit etc\waconfig.xml and etc\Node.xml to ensure that hostnames are in the same case&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="color: #000000;"&gt;start services "nctrl start"&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;span style="color: #000000;"&gt;This is done in all the nodes of the farm.&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10146012" width="1" height="1"&gt;</description></item><item><title>Case-insensitive sort order in FAST Search for SharePoint 2010</title><link>http://blogs.msdn.com/b/pasen/archive/2011/03/08/case-insensitive-sort-order-in-fast-search-for-sharepoint-2010.aspx</link><pubDate>Tue, 08 Mar 2011 13:35:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10138081</guid><dc:creator>Paresh Sen</dc:creator><slash:comments>3</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/pasen/rsscomments.aspx?WeblogPostID=10138081</wfw:commentRss><comments>http://blogs.msdn.com/b/pasen/archive/2011/03/08/case-insensitive-sort-order-in-fast-search-for-sharepoint-2010.aspx#comments</comments><description>&lt;p&gt;By default FAST search sort is based on ASCII sort order. Therefore, sorting will follow [0-9A-Za-z] as pattern i.e. Numeric values will be followed by capital letter followed by small letter words in ascending sort.&lt;/p&gt;
&lt;p&gt;In order to change the order to be case insensitive, we need to a change the &lt;b&gt;fullsort &lt;/b&gt;profile. Index-profile contains details for each managed metadata property and sort profile needs to be changed in the same place. In the FAST installation folder inside &lt;b&gt;index-profiles&lt;/b&gt; locate the file "&lt;b&gt;deployment-ready-index-profile.xml&lt;/b&gt;". [&lt;span style="font-size: x-small;"&gt; We should take back up of existing file before any changes, so that we can revert back to original settings as needed&lt;/span&gt;]&lt;/p&gt;
&lt;p&gt;Add this for the relevant property: &lt;span class="m"&gt;&amp;lt;&lt;/span&gt;&lt;span class="t"&gt;fullsort&lt;/span&gt; &lt;span class="t"&gt;profile&lt;/span&gt;&lt;span class="m"&gt;="&lt;/span&gt;&lt;b&gt;generic&lt;/b&gt;&lt;span class="m"&gt;"&lt;/span&gt;&lt;span class="t"&gt;&amp;nbsp;&lt;/span&gt;&lt;span class="m"&gt;/&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span class="m"&gt;For example:&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span class="m"&gt;deafult value:&lt;/span&gt;&lt;span class="m"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span class="t"&gt;field&lt;/span&gt;&lt;span class="t"&gt; fullsort&lt;/span&gt;&lt;span class="m"&gt;="&lt;/span&gt;&lt;b&gt;yes&lt;/b&gt;&lt;span class="m"&gt;"&lt;/span&gt;&lt;span class="t"&gt; .....................&lt;/span&gt;&lt;span class="t"&gt; name&lt;/span&gt;&lt;span class="m"&gt;="&lt;b&gt;PropertyName&lt;/b&gt;&lt;/span&gt;&lt;span class="m"&gt;"&lt;/span&gt;&lt;span class="t"&gt; description&lt;/span&gt;&lt;span class="m"&gt;="&lt;/span&gt;&lt;span class="m"&gt;"/&lt;/span&gt;&lt;span class="m"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span class="m"&gt;Modified value:&lt;/span&gt;&lt;span class="b"&gt;&amp;nbsp;&lt;/span&gt; &lt;span class="m"&gt;&amp;lt;&lt;/span&gt;&lt;span class="t"&gt;field&lt;/span&gt;&lt;span class="t"&gt; fullsort&lt;/span&gt;&lt;span class="m"&gt;="&lt;/span&gt;&lt;b&gt;yes&lt;/b&gt;&lt;span class="m"&gt;"&lt;/span&gt;&lt;span class="t"&gt; .....................&lt;/span&gt;&lt;span class="t"&gt; name&lt;/span&gt;&lt;span class="m"&gt;="&lt;b&gt;PropertyName&lt;/b&gt;&lt;/span&gt;&lt;span class="m"&gt;"&lt;/span&gt;&lt;span class="t"&gt; description&lt;/span&gt;&lt;span class="m"&gt;="&lt;/span&gt;&lt;span class="m"&gt;"&lt;/span&gt;&lt;span class="m"&gt;&amp;gt;&lt;/span&gt;&lt;span class="m"&gt;&amp;lt;&lt;/span&gt;&lt;span class="t"&gt;fullsort&lt;/span&gt; &lt;span class="t"&gt;profile&lt;/span&gt;&lt;span class="m"&gt;="&lt;/span&gt;&lt;b&gt;generic&lt;/b&gt;&lt;span class="m"&gt;"&lt;/span&gt;&lt;span class="m"&gt; /&amp;gt;&lt;/span&gt;&lt;span class="m"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="t"&gt;field&lt;/span&gt;&lt;span class="m"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;After doing a full crawl data will be presented in case-insensitive order for the given property. We can further set the order as ascending or descending as required.&lt;/p&gt;
&lt;p&gt;This &lt;a href="http://social.technet.microsoft.com/Forums/en-US/fastlegacy/thread/5f53b8e6-858d-49fc-be96-d4f440ff7e77/" title="post"&gt;post &lt;/a&gt;has a similar discussion on this subject.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;One of the limitation of this implementation is that once a new metadata managed property is added or an existing one gets deleted the index-profile file is re-generated. The newly generated file does not retain the modfied values.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10138081" width="1" height="1"&gt;</description></item><item><title>Crawl fails to index data and doesn't show any update in crawl log</title><link>http://blogs.msdn.com/b/pasen/archive/2011/03/07/crawl-fails-to-index-data-and-doesn-t-show-any-update-in-crawl-log.aspx</link><pubDate>Mon, 07 Mar 2011 14:14:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10137649</guid><dc:creator>Paresh Sen</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/pasen/rsscomments.aspx?WeblogPostID=10137649</wfw:commentRss><comments>http://blogs.msdn.com/b/pasen/archive/2011/03/07/crawl-fails-to-index-data-and-doesn-t-show-any-update-in-crawl-log.aspx#comments</comments><description>&lt;p&gt;I observed this issue recently for a SharePoint\Fast Search for SharePoint 2010 farm set up. Crawl was going into a infinite state without any errors and updates. There were no indication in crawl log for any success or failures. It was all working fine and there was no change to system\farm setup.&lt;/p&gt;
&lt;p&gt;I tried verifying SharePoint\Fast services, everything seems to be working fine. Therefore, I tried accessing the default search url (http://localhost:13280) in FAST and performed a simple search. The search resulted in an error&amp;nbsp; with description "&lt;b&gt;All partitions are down Code: 1003&lt;/b&gt;". On looking further in eventlog found the error "&lt;b&gt;We are low on disk space, waiting for disk space to be freed&lt;/b&gt;".&lt;/p&gt;
&lt;p&gt;It turned out to be the disk space issue.The fast installation drive was having much lower disk space than the recommended one.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10137649" width="1" height="1"&gt;</description></item><item><title>How to enable security trimming on search result for external data indexed in SharePoint 2010: SQL connector</title><link>http://blogs.msdn.com/b/pasen/archive/2011/02/22/how-to-enable-security-trimming-on-search-result-for-external-data-indexed-in-sharepoint-2010-sql-connector.aspx</link><pubDate>Tue, 22 Feb 2011 12:55:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10132637</guid><dc:creator>Paresh Sen</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/pasen/rsscomments.aspx?WeblogPostID=10132637</wfw:commentRss><comments>http://blogs.msdn.com/b/pasen/archive/2011/02/22/how-to-enable-security-trimming-on-search-result-for-external-data-indexed-in-sharepoint-2010-sql-connector.aspx#comments</comments><description>&lt;p class="MsoNormal"&gt;&lt;span style="font-family: Times New Roman;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: arial,helvetica,sans-serif;"&gt;In continuation to my last post I'll explain how to enable security trimming on search results in SharePoint 2010 for external database. We need to have a BDC model file created with suitable operations for a table that is being indexed in SharePoint. More details on creation of BDC model file can be found here: &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul type="disc"&gt;
&lt;li style="margin: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; tab-stops: list .5in; mso-list: l4 level1 lfo1;" class="MsoNormal"&gt;&lt;span style="font-family: 'Calibri','sans-serif'; mso-fareast-font-family: 'Times New Roman';"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: arial,helvetica,sans-serif;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: arial,helvetica,sans-serif;"&gt;Create an External Content Type Based on a SQL Server Table&lt;b&gt; &lt;/b&gt;[&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;a title="link" href="http://msdn.microsoft.com/en-us/library/ee557243.aspx"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: arial,helvetica,sans-serif;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: arial,helvetica,sans-serif;"&gt;link&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: arial,helvetica,sans-serif;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: arial,helvetica,sans-serif;"&gt;] &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li style="margin: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; tab-stops: list .5in; mso-list: l4 level1 lfo1;" class="MsoNormal"&gt;&lt;span style="font-family: 'Calibri','sans-serif'; mso-fareast-font-family: 'Times New Roman';"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: arial,helvetica,sans-serif;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: arial,helvetica,sans-serif;"&gt;Business Data Connectivity Models&lt;b&gt; &lt;/b&gt;[&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;a title="link" href="http://msdn.microsoft.com/en-us/library/ff798325.aspx"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: arial,helvetica,sans-serif;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: arial,helvetica,sans-serif;"&gt;link&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: arial,helvetica,sans-serif;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: arial,helvetica,sans-serif;"&gt;]&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;span style="font-family: 'Calibri','sans-serif';"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: arial,helvetica,sans-serif;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: arial,helvetica,sans-serif;"&gt;At this point we assume that we have the below items in place:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul type="disc"&gt;
&lt;li style="margin: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; tab-stops: list .5in; mso-list: l2 level1 lfo2;" class="MsoNormal"&gt;&lt;span style="font-family: 'Calibri','sans-serif'; mso-fareast-font-family: 'Times New Roman';"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: arial,helvetica,sans-serif;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: arial,helvetica,sans-serif;"&gt;External data table with all relevant columns that need to be indexed&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li style="margin: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; tab-stops: list .5in; mso-list: l2 level1 lfo2;" class="MsoNormal"&gt;&lt;span style="font-family: 'Calibri','sans-serif'; mso-fareast-font-family: 'Times New Roman';"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: arial,helvetica,sans-serif;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: arial,helvetica,sans-serif;"&gt;BDC model file with List\item operations defined in it for the above table&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;span style="font-family: 'Calibri','sans-serif';"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: arial,helvetica,sans-serif;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: arial,helvetica,sans-serif;"&gt;In order to have item level security implemented and search result trimming based on security, we need to have the security descriptor generated for each record and present in the table for each row. If the external system is already not having this data available, we can generate the same using:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: arial,helvetica,sans-serif;"&gt;&lt;span style="font-family: arial,helvetica,sans-serif;"&gt;&lt;code&gt;private Byte[] GetSecurityDescriptor(string domain, string username)&lt;/code&gt; &lt;/span&gt;&lt;code&gt;{&lt;/code&gt;&lt;br /&gt; &lt;code&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;NTAccount acc = new NTAccount(domain, username);&lt;/code&gt; &lt;code&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;SecurityIdentifier sid = (SecurityIdentifier)acc.Translate(typeof(SecurityIdentifier));&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;CommonSecurityDescriptor sd = new CommonSecurityDescriptor(false, false, ControlFlags.None,sid, null, null, null);&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;sd.SetDiscretionaryAclProtection(true, false);&lt;/code&gt;&lt;br /&gt;&lt;br /&gt; &lt;code&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;//Deny access to all users.&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;SecurityIdentifier everyone = new SecurityIdentifier(WellKnownSidType.WorldSid, null);&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;sd.DiscretionaryAcl.RemoveAccess(AccessControlType.Allow, everyone, unchecked((int)0xffffffffL), InheritanceFlags.None, PropagationFlags.None);&lt;/code&gt;&lt;br /&gt;&lt;br /&gt; &lt;code&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;//Grant full access to a specified user.&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;sd.DiscretionaryAcl.AddAccess(AccessControlType.Allow, sid, unchecked((int)0xffffffffL), InheritanceFlags.None, PropagationFlags.None);&lt;/code&gt;&lt;br /&gt; &lt;code&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;byte[] secDes = new Byte[sd.BinaryLength];&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;sd.GetBinaryForm(secDes, 0);&lt;/code&gt;&lt;br /&gt;&lt;br /&gt; &lt;code&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;return secDes;&lt;/code&gt;&lt;br /&gt;&lt;code&gt;}&lt;/code&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span style="font-size: 12pt;"&gt;&lt;span style="font-family: arial,helvetica,sans-serif;"&gt;&lt;span style="font-size: small;"&gt; &lt;br /&gt; Follow this &lt;/span&gt;&lt;/span&gt;&lt;a title="msdn link" href="http://msdn.microsoft.com/fr-fr/library/gg294169.aspx#Y1137"&gt;&lt;span style="font-family: arial,helvetica,sans-serif;"&gt;&lt;span style="font-size: small;"&gt;msdn link&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: arial,helvetica,sans-serif;"&gt;&lt;span style="font-size: small;"&gt; for details.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/pre&gt;
&lt;p&gt;&lt;span style="font-family: 'Calibri','sans-serif';"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: arial,helvetica,sans-serif;"&gt;&lt;span style="font-size: small;"&gt;This can be used for a user or group or can be modified as required for a set of users\groups that can be mapped to windows users\groups. This will generate a byte stream and we need to store it in the table for each row as a varbinary value.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: 'Calibri','sans-serif';"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: arial,helvetica,sans-serif;"&gt;&lt;span style="font-size: small;"&gt;Once we set the table data appropriately, we need to map this new column in our BDC model file. Assume the column containing security details is called "&lt;b&gt;SecurityDescriptor&lt;/b&gt;". we will use this name here forward for mapping. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: 'Calibri','sans-serif';"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: arial,helvetica,sans-serif;"&gt;&lt;span style="font-size: small;"&gt;In the BDC model file do the below changes:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul type="disc"&gt;
&lt;li style="margin: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; tab-stops: list .5in; mso-list: l3 level1 lfo3;" class="MsoNormal"&gt;&lt;span style="font-family: 'Calibri','sans-serif'; mso-fareast-font-family: 'Times New Roman';"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: arial,helvetica,sans-serif;"&gt;In "Read List" section, for Finder method ensure the properties as shown:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;span style="font-family: 'Calibri','sans-serif';"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: arial,helvetica,sans-serif;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: arial,helvetica,sans-serif;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;MethodInstance Type="Finder" ReturnParameterName="TableRead List" Default="true" Name="TableRead List" DefaultDisplayName="Table Read List"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Properties&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Property Name="RootFinder" Type="System.String"&amp;gt;&amp;lt;/Property&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;lt;/Properties&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/MethodInstance&amp;gt;&lt;br /&gt;&lt;span style="background: white;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul type="disc"&gt;
&lt;li style="margin: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; tab-stops: list .5in; mso-list: l0 level1 lfo4;" class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: arial,helvetica,sans-serif;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: arial,helvetica,sans-serif;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="background: white; mso-fareast-font-family: 'Times New Roman';"&gt;&lt;span style="background-attachment: scroll; background-position: 0% 0%;"&gt;In "Read Item" section, ensure we have a parameter for "&lt;b&gt;SecurityDescriptor&lt;/b&gt;" column:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p style="margin: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; tab-stops: list .5in; mso-list: l0 level1 lfo4;" class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: arial,helvetica,sans-serif;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: arial,helvetica,sans-serif;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="background: white; mso-fareast-font-family: 'Times New Roman';"&gt;&lt;span style="background-attachment: scroll; background-position: 0% 0%;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Times New Roman;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: arial,helvetica,sans-serif;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: arial,helvetica,sans-serif;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;TypeDescriptor TypeName="System.Byte[], mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" IsCollection="true" Name="SecurityDescriptor"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;TypeDescriptors&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;lt;TypeDescriptor TypeName="System.Byte" Name="SecurityDescriptorElement" /&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;/TypeDescriptors&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/TypeDescriptor&amp;gt;&lt;br /&gt;&amp;nbsp;&lt;span style="background: white;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul type="disc"&gt;
&lt;li style="margin: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; tab-stops: list .5in; mso-list: l1 level1 lfo5;" class="MsoNormal"&gt;&lt;span style="font-family: 'Calibri','sans-serif'; mso-fareast-font-family: 'Times New Roman';"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: arial,helvetica,sans-serif;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: arial,helvetica,sans-serif;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp; In "Read Item" section, for "SpecificFinder" method, ensure mapping for "SecurityDescriptor" with property "WindowsSecurityDescriptorField"&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: arial,helvetica,sans-serif;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: arial,helvetica,sans-serif;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="background: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;lt;MethodInstance Type="SpecificFinder" ReturnParameterName="TableRead Item" ReturnTypeDescriptorPath="TableRead Item[0]" Default="true" Name="TableRead Item" DefaultDisplayName="Read Item Table"&amp;gt;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;Properties&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Property Name="LastDesignedOfficeItemType" Type="System.String"&amp;gt;None&amp;lt;/Property&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Property Name="WindowsSecurityDescriptorField" Type="System.String"&amp;gt;SecurityDescriptor&amp;lt;/Property&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/Properties&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/MethodInstance&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: arial,helvetica,sans-serif;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: arial,helvetica,sans-serif;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="background: white;"&gt;&lt;span style="background-attachment: scroll; background-position: 0% 0%;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: 'Times New Roman','serif'; background: white; font-size: 12pt; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;"&gt;&lt;span style="background-attachment: scroll; background-position: 0% 0%;"&gt;&lt;span style="font-family: arial,helvetica,sans-serif;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: arial,helvetica,sans-serif;"&gt;&lt;span style="font-size: small;"&gt;After importing the BDC model file, run a full crawl on the content source. Now search results should show the security trimmed data.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[if gte mso 10]&gt;
&lt;mce:style&gt;&lt;! 
 /* Style Definitions */
 table.MsoNormalTable
	{mso-style-name:"Table Normal";
	mso-tstyle-rowband-size:0;
	mso-tstyle-colband-size:0;
	mso-style-noshow:yes;
	mso-style-priority:99;
	mso-style-parent:"";
	mso-padding-alt:0in 5.4pt 0in 5.4pt;
	mso-para-margin-top:0in;
	mso-para-margin-right:0in;
	mso-para-margin-bottom:10.0pt;
	mso-para-margin-left:0in;
	line-height:115%;
	mso-pagination:widow-orphan;
	font-size:11.0pt;
	font-family:"Calibri","sans-serif";
	mso-ascii-font-family:Calibri;
	mso-ascii-theme-font:minor-latin;
	mso-hansi-font-family:Calibri;
	mso-hansi-theme-font:minor-latin;
	mso-bidi-font-family:"Times New Roman";
	mso-bidi-theme-font:minor-bidi;}
 &gt;
&lt;! [endif] &gt;
&lt;/div&gt;
&lt;div class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;" mce_style="margin-bottom: 0.0001pt; line-height: normal;" mce_tmp="1"&gt;&lt;span style="font-size: small;" mce_style="font-size: small;"&gt;In continuation to my last post I'll explain how to enable security trimming on search results in SharePoint 2010 for external database. We need to have a BDC model file created with suitable operations for a table that is being indexed in SharePoint. More details on creation of BDC model file can be found here: &lt;/span&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style="font-size: small;" mce_style="font-size: small;"&gt;Create
an External Content Type Based on a SQL Server Table&lt;b&gt; &lt;/b&gt;[&lt;a title="link" href="http://msdn.microsoft.com/en-us/library/ee557243.aspx" mce_href="http://msdn.microsoft.com/en-us/library/ee557243.aspx"&gt;link&lt;/a&gt;] &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size: small;" mce_style="font-size: small;"&gt;Business Data
Connectivity Models&lt;b&gt; &lt;/b&gt;[&lt;a title="link" href="http://msdn.microsoft.com/en-us/library/ff798325.aspx" mce_href="http://msdn.microsoft.com/en-us/library/ff798325.aspx"&gt;link&lt;/a&gt;]&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div  mce_tmp="1"&gt;&lt;span style="font-size: small;" mce_style="font-size: small;"&gt;At this point we assume that we have the below items in place:&lt;/span&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style="font-size: small;" mce_style="font-size: small;"&gt;External data table with all relevant columns that need to be indexed&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size: small;" mce_style="font-size: small;"&gt;BDC model file with List\item operations defined in it for the above table&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div  mce_tmp="1"&gt;&lt;span style="font-size: small;" mce_style="font-size: small;"&gt;In order to have item level security implemented and search result trimming based on security, we need to have the security descriptor generated for each record and present in the table for each row. If the external system is already not having this data available, we can generate the same using:&lt;span style="color: gray;" mce_style="color: gray;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;pre&gt;&lt;span style="font-size: small;" mce_style="font-size: small;"&gt;&lt;pre class="scroll"&gt;&lt;code class="csharp"&gt;private Byte[] GetSecurityDescriptor(string domain, string username)&lt;br /&gt;{&lt;br /&gt;   NTAccount acc = new NTAccount(domain, username);&lt;br /&gt;   SecurityIdentifier sid = (SecurityIdentifier)acc.Translate(typeof(SecurityIdentifier));&lt;br /&gt;   CommonSecurityDescriptor sd = new CommonSecurityDescriptor(false, false, ControlFlags.None,sid, null, null, null);&lt;br /&gt;   sd.SetDiscretionaryAclProtection(true, false);&lt;br /&gt;&lt;br /&gt;    //Deny access to all users.&lt;br /&gt;   SecurityIdentifier everyone = new SecurityIdentifier(WellKnownSidType.WorldSid, null);&lt;br /&gt;   sd.DiscretionaryAcl.RemoveAccess(AccessControlType.Allow, everyone, unchecked((int)0xffffffffL), InheritanceFlags.None, PropagationFlags.None);&lt;br /&gt;&lt;br /&gt;   //Grant full access to a specified user.&lt;br /&gt;   sd.DiscretionaryAcl.AddAccess(AccessControlType.Allow, sid, unchecked((int)0xffffffffL), InheritanceFlags.None, PropagationFlags.None);&lt;br /&gt;&lt;br /&gt;   byte[] secDes = new Byte[sd.BinaryLength];&lt;br /&gt;   sd.GetBinaryForm(secDes, 0);&lt;br /&gt;&lt;br /&gt;   return secDes;&lt;br /&gt;}&lt;/code&gt;&lt;/pre&gt;
&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: small;" mce_style="font-size: small;"&gt;Follow this &lt;a title="msdn link" href="http://msdn.microsoft.com/fr-fr/library/gg294169.aspx#Y1137" mce_href="http://msdn.microsoft.com/fr-fr/library/gg294169.aspx#Y1137"&gt;msdn link&lt;/a&gt; for details.&lt;/span&gt;&lt;/pre&gt;
&lt;div  mce_tmp="1"&gt;&lt;span style="font-size: small;" mce_style="font-size: small;"&gt;This can be used for a user or group or can be modified as required for a set of users\groups that can be mapped to windows users\groups. This will generate a byte stream and we need to store it in the table for each row as a varbinary value.&lt;/span&gt;&lt;/div&gt;
&lt;div  mce_tmp="1"&gt;&lt;span style="font-size: small;" mce_style="font-size: small;"&gt;Once we set the table data appropriately, we need to map this new column in our BDC model file. Assume the column containing security details is called "&lt;b&gt;SecurityDescriptor&lt;/b&gt;". we will use this name here forward for mapping. &lt;/span&gt;&lt;/div&gt;
&lt;div  mce_tmp="1"&gt;&lt;span style="font-size: small;" mce_style="font-size: small;"&gt;In the BDC model file do the below changes:&lt;/span&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style="font-size: small;" mce_style="font-size: small;"&gt;In "Read List" section, for Finder method ensure the properties as shown:&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div  mce_tmp="1"&gt;&lt;span style="font-size: small;" mce_style="font-size: small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="background-color: #ffffff;" mce_style="background-color: #ffffff;"&gt; &lt;span style="background-image: none; background-repeat: repeat; background-attachment: scroll; background-position: 0% 0%;" mce_style="background-image: none; background-repeat: repeat; background-attachment: scroll; background-position: 0% 0%;"&gt;&amp;lt;MethodInstance
Type="Finder" ReturnParameterName="TableRead List"
Default="true" Name="TableRead List"
DefaultDisplayName="Table Read List"&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;" mce_style="margin-bottom: 0.0001pt; line-height: normal;" mce_tmp="1"&gt;&lt;span style="font-size: small;" mce_style="font-size: small;"&gt;&lt;span style="background-color: #ffffff;" mce_style="background-color: #ffffff;"&gt;&lt;span style="background-image: none; background-repeat: repeat; background-attachment: scroll; background-position: 0% 0%;" mce_style="background-image: none; background-repeat: repeat; background-attachment: scroll; background-position: 0% 0%;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Properties&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;" mce_style="margin-bottom: 0.0001pt; line-height: normal;" mce_tmp="1"&gt;&lt;span style="font-size: small;" mce_style="font-size: small;"&gt;&lt;span style="background-color: #ffffff;" mce_style="background-color: #ffffff;"&gt;&lt;span style="background-image: none; background-repeat: repeat; background-attachment: scroll; background-position: 0% 0%;" mce_style="background-image: none; background-repeat: repeat; background-attachment: scroll; background-position: 0% 0%;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Property
Name="RootFinder" Type="System.String"&amp;gt;&amp;lt;/Property&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;" mce_style="margin-bottom: 0.0001pt; line-height: normal;" mce_tmp="1"&gt;&lt;span style="font-size: small;" mce_style="font-size: small;"&gt;&lt;span style="background-color: #ffffff;" mce_style="background-color: #ffffff;"&gt;&lt;span style="background-image: none; background-repeat: repeat; background-attachment: scroll; background-position: 0% 0%;" mce_style="background-image: none; background-repeat: repeat; background-attachment: scroll; background-position: 0% 0%;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/Properties&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;" mce_style="margin-bottom: 0.0001pt; line-height: normal;" mce_tmp="1"&gt;&lt;span style="font-size: small;" mce_style="font-size: small;"&gt;&lt;span style="background-color: #ffffff;" mce_style="background-color: #ffffff;"&gt;&lt;span style="background-image: none; background-repeat: repeat; background-attachment: scroll; background-position: 0% 0%;" mce_style="background-image: none; background-repeat: repeat; background-attachment: scroll; background-position: 0% 0%;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/MethodInstance&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style="font-size: small;" mce_style="font-size: small;"&gt;&lt;span style="background-color: #ffffff;" mce_style="background-color: #ffffff;"&gt;&lt;span style="background-image: none; background-repeat: repeat; background-attachment: scroll; background-position: 0% 0%;" mce_style="background-image: none; background-repeat: repeat; background-attachment: scroll; background-position: 0% 0%;"&gt;In "Read Item" section, ensure we have a parameter for "&lt;b&gt;SecurityDescriptor&lt;/b&gt;" column:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;" mce_style="margin-bottom: 0.0001pt; line-height: normal;" mce_tmp="1"&gt;&lt;span style="font-size: small;" mce_style="font-size: small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="background-color: #ffffff;" mce_style="background-color: #ffffff;"&gt;&amp;nbsp; &lt;span style="background-image: none; background-repeat: repeat; background-attachment: scroll; background-position: 0% 0%;" mce_style="background-image: none; background-repeat: repeat; background-attachment: scroll; background-position: 0% 0%;"&gt;&amp;lt;TypeDescriptor
TypeName="System.Byte[], mscorlib, Version=2.0.0.0, Culture=neutral,
PublicKeyToken=b77a5c561934e089" IsCollection="true"
Name="SecurityDescriptor"&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;" mce_style="margin-bottom: 0.0001pt; line-height: normal;" mce_tmp="1"&gt;&lt;span style="font-size: small;" mce_style="font-size: small;"&gt;&lt;span style="background-color: #ffffff;" mce_style="background-color: #ffffff;"&gt;&lt;span style="background-image: none; background-repeat: repeat; background-attachment: scroll; background-position: 0% 0%;" mce_style="background-image: none; background-repeat: repeat; background-attachment: scroll; background-position: 0% 0%;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;TypeDescriptors&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;" mce_style="margin-bottom: 0.0001pt; line-height: normal;" mce_tmp="1"&gt;&lt;span style="font-size: small;" mce_style="font-size: small;"&gt;&lt;span style="background-color: #ffffff;" mce_style="background-color: #ffffff;"&gt;&lt;span style="background-image: none; background-repeat: repeat; background-attachment: scroll; background-position: 0% 0%;" mce_style="background-image: none; background-repeat: repeat; background-attachment: scroll; background-position: 0% 0%;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;TypeDescriptor TypeName="System.Byte"
Name="SecurityDescriptorElement" /&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;" mce_style="margin-bottom: 0.0001pt; line-height: normal;" mce_tmp="1"&gt;&lt;span style="font-size: small;" mce_style="font-size: small;"&gt;&lt;span style="background-color: #ffffff;" mce_style="background-color: #ffffff;"&gt;&lt;span style="background-image: none; background-repeat: repeat; background-attachment: scroll; background-position: 0% 0%;" mce_style="background-image: none; background-repeat: repeat; background-attachment: scroll; background-position: 0% 0%;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;/TypeDescriptors&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;" mce_style="margin-bottom: 0.0001pt; line-height: normal;" mce_tmp="1"&gt;&lt;span style="font-size: small;" mce_style="font-size: small;"&gt;&lt;span style="background-color: #ffffff;" mce_style="background-color: #ffffff;"&gt;&lt;span style="background-image: none; background-repeat: repeat; background-attachment: scroll; background-position: 0% 0%;" mce_style="background-image: none; background-repeat: repeat; background-attachment: scroll; background-position: 0% 0%;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;
&amp;lt;/TypeDescriptor&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style="font-size: small;" mce_style="font-size: small;"&gt;&amp;nbsp; In "Read Item" section, for "SpecificFinder" method, ensure mapping for "SecurityDescriptor" with property "WindowsSecurityDescriptorField"&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;" mce_style="margin-bottom: 0.0001pt; line-height: normal;" mce_tmp="1"&gt;&lt;span style="font-size: small;" mce_style="font-size: small;"&gt;&lt;span style="background-color: #ffffff;" mce_style="background-color: #ffffff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="background-image: none; background-repeat: repeat; background-attachment: scroll; background-position: 0% 0%;" mce_style="background-image: none; background-repeat: repeat; background-attachment: scroll; background-position: 0% 0%;"&gt;&amp;lt;MethodInstance
Type="SpecificFinder" ReturnParameterName="TableRead
Item" ReturnTypeDescriptorPath="TableRead Item[0]"
Default="true" Name="TableRead Item"
DefaultDisplayName="Read Item Table"&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;" mce_style="margin-bottom: 0.0001pt; line-height: normal;" mce_tmp="1"&gt;&lt;span style="font-size: small;" mce_style="font-size: small;"&gt;&lt;span style="background-color: #ffffff;" mce_style="background-color: #ffffff;"&gt;&lt;span style="background-image: none; background-repeat: repeat; background-attachment: scroll; background-position: 0% 0%;" mce_style="background-image: none; background-repeat: repeat; background-attachment: scroll; background-position: 0% 0%;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Properties&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;" mce_style="margin-bottom: 0.0001pt; line-height: normal;" mce_tmp="1"&gt;&lt;span style="font-size: small;" mce_style="font-size: small;"&gt;&lt;span style="background-color: #ffffff;" mce_style="background-color: #ffffff;"&gt;&lt;span style="background-image: none; background-repeat: repeat; background-attachment: scroll; background-position: 0% 0%;" mce_style="background-image: none; background-repeat: repeat; background-attachment: scroll; background-position: 0% 0%;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Property
Name="LastDesignedOfficeItemType"
Type="System.String"&amp;gt;None&amp;lt;/Property&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;" mce_style="margin-bottom: 0.0001pt; line-height: normal;" mce_tmp="1"&gt;&lt;span style="font-size: small;" mce_style="font-size: small;"&gt;&lt;span style="background-color: #ffffff;" mce_style="background-color: #ffffff;"&gt;&lt;span style="background-image: none; background-repeat: repeat; background-attachment: scroll; background-position: 0% 0%;" mce_style="background-image: none; background-repeat: repeat; background-attachment: scroll; background-position: 0% 0%;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="background-color: #ffff00;" mce_style="background-color: #ffff00;"&gt; &amp;lt;Property
Name="WindowsSecurityDescriptorField"
Type="System.String"&amp;gt;SecurityDescriptor&amp;lt;/Property&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;" mce_style="margin-bottom: 0.0001pt; line-height: normal;" mce_tmp="1"&gt;&lt;span style="font-size: small;" mce_style="font-size: small;"&gt;&lt;span style="background-color: #ffffff;" mce_style="background-color: #ffffff;"&gt;&lt;span style="background-image: none; background-repeat: repeat; background-attachment: scroll; background-position: 0% 0%;" mce_style="background-image: none; background-repeat: repeat; background-attachment: scroll; background-position: 0% 0%;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/Properties&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;" mce_style="margin-bottom: 0.0001pt; line-height: normal;" mce_tmp="1"&gt;&lt;span style="font-size: small;" mce_style="font-size: small;"&gt;&lt;span style="background-color: #ffffff;" mce_style="background-color: #ffffff;"&gt;&lt;span style="background-image: none; background-repeat: repeat; background-attachment: scroll; background-position: 0% 0%;" mce_style="background-image: none; background-repeat: repeat; background-attachment: scroll; background-position: 0% 0%;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/MethodInstance&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;" mce_style="margin-bottom: 0.0001pt; line-height: normal;" mce_tmp="1"&gt;&lt;span style="font-size: small;" mce_style="font-size: small;"&gt;&lt;span style="background-color: #ffffff;" mce_style="background-color: #ffffff;"&gt;&lt;span style="background-image: none; background-repeat: repeat; background-attachment: scroll; background-position: 0% 0%;" mce_style="background-image: none; background-repeat: repeat; background-attachment: scroll; background-position: 0% 0%;"&gt;After importing the BDC model file, run a full crawl on the content source. Now search results should show the security trimmed data.&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;" mce_style="margin-bottom: 0.0001pt; line-height: normal;" mce_tmp="1"&gt;&lt;span style="font-size: small;" mce_style="font-size: small;"&gt;&lt;span style="background-color: #ffffff;" mce_style="background-color: #ffffff;"&gt;&lt;span style="background-image: none; background-repeat: repeat; background-attachment: scroll; background-position: 0% 0%;" mce_style="background-image: none; background-repeat: repeat; background-attachment: scroll; background-position: 0% 0%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;" mce_style="margin-bottom: 0.0001pt; line-height: normal;" mce_tmp="1"&gt;&lt;span style="font-size: small;" mce_style="font-size: small;"&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div  mce_tmp="1"&gt;&lt;span style="font-size: small;" mce_style="font-size: small;"&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ff798325.aspx" mce_href="http://msdn.microsoft.com/en-us/library/ff798325.aspx"&gt;&lt;b&gt;&lt;/b&gt;&lt;/a&gt;&lt;span class="MsoHyperlink"&gt;&lt;/span&gt;&lt;/span&gt;&lt; &gt;&lt;/d &gt;&lt;/div&gt;
&lt;/P&gt;&lt;--&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10132637" width="1" height="1"&gt;</description></item><item><title>Crawl of external data in SharePoint 2010 is going into hung state?</title><link>http://blogs.msdn.com/b/pasen/archive/2011/02/22/crawl-of-external-data-in-sharepoint-2010-is-going-into-hung-state.aspx</link><pubDate>Tue, 22 Feb 2011 11:19:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10132607</guid><dc:creator>Paresh Sen</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/pasen/rsscomments.aspx?WeblogPostID=10132607</wfw:commentRss><comments>http://blogs.msdn.com/b/pasen/archive/2011/02/22/crawl-of-external-data-in-sharepoint-2010-is-going-into-hung-state.aspx#comments</comments><description>&lt;p&gt;Recently we have encountered this issue where our crawl process was going into hung state. We have a SharePoint 2010\FAST farm and we have used BCS custom connector to crawl external data with large no of documents.We have used the metadata extraction for the documents. Our crawl process was going into hung state and was not completing even after many hours.&lt;/p&gt;
&lt;p&gt;Issues observed during crawling of data were:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;connection time out&lt;/li&gt;
&lt;li&gt;data time out&lt;/li&gt;
&lt;li&gt;failure in indexing large files&lt;/li&gt;
&lt;li&gt;mssdmn process becomes unresponsive&lt;/li&gt;
&lt;li&gt;high memory\CPU utilization&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt; After a long troubleshooting we were able to isolate a couple of issues that were adding to this behavior.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Large files [Files greater that 64 MB in size]
&lt;/li&gt;
&lt;li&gt;Low system disk space ["Temp" folder is used for temporary download of files for indexing in case of custom connector where download functionality is written in code]&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Steps to rectify the crawl behavior in above scenario:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Increase the ConnectTimeout, DataTimeout values&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;Increase "MaxDownloadSize" to some more appropriate value as per the data&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Follow these links[ &lt;a title="blog post" href="http://www.logimindz.com/blog/indexing-very-large-files-in-sharepoint-2010"&gt;blog post&lt;/a&gt; , &lt;a title="blog post" href="http://blogs.technet.com/b/brent/archive/2010/07/19/sharepoint-server-2010-maxdownloadsize-and-maxgrowfactor.aspx"&gt;blog post&lt;/a&gt; ] for guidance on how to change the above values.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10132607" width="1" height="1"&gt;</description></item><item><title>Enabling security trimming on search results: External data in SharePoint 2010</title><link>http://blogs.msdn.com/b/pasen/archive/2011/02/19/enabling-security-trimming-on-search-results-external-data-in-sharepoint-2010.aspx</link><pubDate>Fri, 18 Feb 2011 18:52:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10131533</guid><dc:creator>Paresh Sen</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/pasen/rsscomments.aspx?WeblogPostID=10131533</wfw:commentRss><comments>http://blogs.msdn.com/b/pasen/archive/2011/02/19/enabling-security-trimming-on-search-results-external-data-in-sharepoint-2010.aspx#comments</comments><description>&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Business Connectivity Services (BCS) in SharePoint 2010 provides the capability to connect to external data and create scalable application utilizing this out-of-box feature. &lt;/p&gt;
&lt;p&gt;The core function of BDC is to provide connectivity support to the following types of external systems: &lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Databases&lt;/li&gt;
&lt;li&gt;Web/WCF services&lt;/li&gt;
&lt;li&gt;Microsoft .NET Framework connectivity assemblies&lt;/li&gt;
&lt;li&gt;Custom data sources&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Data present in the external repository may have access restrictions i.e. based on role\group\user data can have restricted access. This means every user may not have access to every record present in the repository. SharePoint 2010 provides security trimming that ensures that information is available to the appropriate users only. For each record access information must be present and should be mapped to the users\groups identifiable in SharePoint.&lt;/p&gt;
&lt;p&gt;In order to enable security trimming on the search results, do the below:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Generate security descriptor for access at record level for each item present in external repository&lt;/li&gt;
&lt;li&gt;Create a BDC model with appropriate method instances for reading item and list details&lt;/li&gt;
&lt;li&gt;Return the security descriptor generated as a property to the BDC model along with your item details&lt;/li&gt;
&lt;li&gt;Map the security descriptor property with "WindowsSecurityDescriptorField"&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Security descriptor is byte array generated for a user\group with appropriate access rights defined in it. This value is mapped with the "WindowsSecurityDescriptorField" in "SpecificFinder" for security to work.&lt;/p&gt;
&lt;p&gt;In my next post, I'll walk through a sample database example for the above steps.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10131533" width="1" height="1"&gt;</description></item></channel></rss>