The basic search capability in Rock is quite powerful, but sometimes you may need more. That's where Universal Search comes in. Universal Search allows you to search multiple types of data at once in a full-text manner. In a sense, it's like Google for Rock. With this great power comes some additional technical knowledge, but don't worry we'll unpack it all here in this guide. Overview The first thing that you'll need to enable Universal Search is a search provider. All data in Rock is stored in a SQL Server relational database. Relational databases are great for storing and retrieving large amounts of data stored as records, but they're not so great for doing full-text search. Rock's Universal Search feature relies on a different type of software for hosting the search. We currently support two options: Lucene and Elasticsearch. Lucene Provider Lucene is your go-to for universal search because it requires no additional software to use. Just activate and you're done. Elasticsearch Provider Elasticsearch is an open-source search index used by many of the largest websites including Netflix, eBay and the New York Times. It's free to use but does require that you have the ability to install software on your server. We provide a guide to installing Elasticsearch in the appendix of this guide. If Lucene is the recommended provider, you might ask, "Why would I ever need Elasticsearch?" Good question! Elasticsearch allows you to pass the overhead of indexing and searching to another server. It's also the recommended approach if you are running in a clustered environment. For most organizations, however, it is overkill. Understanding How Universal Search Works Rock is made up of numerous types of data called entities. Entities are things like Person, Group, Group Member, etc. Universal Search supports indexing the following entity types (more could be added in the future based on community response). SitePersonGroupContent Channel ItemEvent ItemDocumentBusiness You might ask, why not index all entities? Working with search is a delicate balance between providing the information the user wants and overloading them with random results. For instance, does anyone want to see results for Workflow Action Types in their search response? NoteCustom Entities Are SupportedAs a developer, you can enable your own entities to participate in Universal Search. More information on this will be coming in the future. TipAvoiding Global Items, Tags and Repetitive ItemsYou can use the following CSS classes to tell Rock not to crawl content that is wrapped by the element using them:no-index, nav, navbarContent within HTML tags that use these as CSS classes will not be indexed.