FAQs on TFS-Search Admin Operations

For various TFS Admin operations at Server, Collection or specific Project level, at times there are ambiguities around what additional Search related configurations, settings  update or other manual actions are required for the Search to continue functioning. This post covers a few of those scenarios and the corresponding Search admin related actions (if any) that…


Search administration in TFS for Collection Attach/Detach operations

Collection detach / attach operations will not require any additional management operation from Search configuration side if it’s done on the same TFS release instance. There are however few management operations that you need to aware of for more complex scenarios such as collection migration to a new TFS instance, collection re-attach to an upgraded…


Upgrading Search in TFS 2018 Update 3

In TFS 2018 Update 2 and 3, Elasticsearch support was updated to ES 5.4.1. If you are upgrading from any earlier version of TFS, a Search re-indexing will be required. TFS 2018 Update 3 also introduced basic auth support for connecting to Elasticsearch. To sum up the matrix – Pre-TFS 2018 Update 2  -> TFS…


Performing a clean uninstall of Search extensions in Team Foundation Server

TFS currently supports search for Code, Work Item and WIKI. Each of these entities have their own extensions that need to be installed for the feature to be enabled for that collection. Extension install is done automatically during Search configuration (note: Work Item and WIKI search extensions are installed by default, whereas Code search is…


Migrating Search cluster in Team Foundation Server

Migrating the Elastic search (ES) cluster to a new machine can come as a requirement for different reasons – AT scale out – The TFS Admin could have initially setup a single AT  with a local ES instance in the same machine and now wants to scale out TFS by adding new load balancer ATs….


Configuring Search for TFS in a multi- Application Tier setup

There has been some uncertainty around how to configure Search in a multi-tier AT setup. This has been already documented over here: https://docs.microsoft.com/en-us/vsts/search/code/administration#config-tfs To quote from the documentation – “When configuring Search for a TFS server with multiple application tiers (ATs), make sure Search is installed on a separate server. After Search is installed on the remote server,…


Mitigating Shard corruption in Elasticsearch

Recently while troubleshooting one of the customer issues for Search in Team Foundation Server, we observed that the Elasticsearch (ES) cluster was consistently going into RED state even on a clean new install and start. The ES version that is packaged with TFS 2017 Update 2 is 2.4.1. (Note that it’s a customized version with some…


Monitoring Search Indexing Progress and Completion in Team Foundation Server

Search indexing time can vary depending on the Code and Work Item volume under the Collection. In another post here, I had briefly explained the 2 different types of indexing that happens. Bulk Indexing (BI), where the entire code and work item artifacts in all projects/repositories under a Collection are indexed. This is a time…


Resetting Search Index in Team Foundation Server

Search indexing for entities (Code, Work Item, WIKI) works in 2 phases: Bulk Indexing (BI) where the entire code and work item artifacts in all projects/repositories under a Collection are indexed. This is a time consuming operation and depends on the size of the artifacts under the collection. Continuous Indexing (CI) which handles all incremental…


Resolving Code Search failure in TFS 2017 Update 2 due to large HTTP url

Please refer to the parent post here for context: https://blogs.msdn.microsoft.com/tapas_sahoos_blog/2017/09/11/analyzing-search-in-microsoft-team-foundation-server/ Code Search in Team Foundation Server (TFS) 2017 Update 2 has a known issue wherein you could encounter Search query failure on collections having large number of repositories (in the order of more than 100). The issue was traced to a HTTP url of the Elasticsearch…