12. A non-transitory machine-readable storage medium comprising instructions, which when implemented by one or more machines, cause the one or more machines to perform operations comprising: detecting a disaster at a primary data center, the primary data center comprising an indexing and search manager comprising an index core and a search core, a distributed file system, and a distributed storage system, the distributed file system and distributed storage system utilized in indexing of documents to be made available for search via the search core; in response to the detecting of the disaster, switching over from the primary data center to a secondary data center such that searches from one or more client applications are routed to the secondary data center, the secondary data center comprising an indexing and search manager comprising an index core and a search core, a distributed file system, and a distributed storage system, the search core and distributed file system updated periodically via duplication of the search core and distributed file system from the primary data center; for each document stored in the search core of the secondary data center: requesting a count for the document from a first client application; determining whether the count for the document from the first client application matches a count for the document from the search core of the secondary data center; and in response to a determination that the count for the document from the first client application does not match a count for the document from the search core of the secondary data center, requesting a full publish for the document from the first client application; wherein the instructions further comprise performing the requesting the count, the determining, and the requesting of the full publish for each document for each tenant represented in the search core of the secondary data center.
12. A non-transitory machine-readable storage medium comprising instructions, which when implemented by one or more machines, cause the one or more machines to perform operations comprising: detecting a disaster at a primary data center, the primary data center comprising an indexing and search manager comprising an index core and a search core, a distributed file system, and a distributed storage system, the distributed file system and distributed storage system utilized in indexing of documents to be made available for search via the search core; in response to the detecting of the disaster, switching over from the primary data center to a secondary data center such that searches from one or more client applications are routed to the secondary data center, the secondary data center comprising an indexing and search manager comprising an index core and a search core, a distributed file system, and a distributed storage system, the search core and distributed file system updated periodically via duplication of the search core and distributed file system from the primary data center; for each document stored in the search core of the secondary data center: requesting a count for the document from a first client application; determining whether the count for the document from the first client application matches a count for the document from the search core of the secondary data center; and in response to a determination that the count for the document from the first client application does not match a count for the document from the search core of the secondary data center, requesting a full publish for the document from the first client application; wherein the instructions further comprise performing the requesting the count, the determining, and the requesting of the full publish for each document for each tenant represented in the search core of the secondary data center. 13. The non-transitory machine-readable storage medium of claim 12 , wherein the indexing of documents comprises: receiving primary data from a first tenant in a computer network; receiving auxiliary data relating to the primary data from the first tenant; creating a first index for the primary data and the auxiliary data from the first tenant; and storing the first index in a first shard.