# SearchService

> Principal Search API to initiate searches and fetch results.

## Definition

* **Type:** Class
* **Namespace:** [UnityEditor.Search](/engine/6000.6/script-reference/unityeditor/search.md)
* **Assembly:** UnityEditor

```csharp
public static class SearchService
```

## Remarks

Make sure to check [SearchService.Request](/engine/6000.6/script-reference/unityeditor/search/searchservice/request.md) for a complete list of all the different ways to execute a search request.

## Examples

```csharp
using System.Linq;
using System.Collections.Generic;
using UnityEditor;
using UnityEditor.Search;
using UnityEngine;

static class Example_SearchService
{
    [MenuItem("Examples/SearchService/Class")]
    public static void Run()
    {
        void OnSearchCompleted(SearchContext context, IList<SearchItem> items)
        {
            foreach (var item in items)
                Debug.Log(item);
        }

        SearchService.Request("*.cs", OnSearchCompleted);
    }

    [MenuItem("Examples/SearchService/Providers")]
    public static void RunProviders()
    {
        #region Providers
        // Print special search providers
        foreach (var provider in SearchService.Providers.Where(p => p.isExplicitProvider))
            Debug.Log($"Special Search Provider {provider.name} ({provider.id})");
        #endregion
    }

    [MenuItem("Examples/SearchService/OrderedProviders")]
    public static void RunOrderedProviders()
    {
        #region OrderedProviders
        // Print providers by their search priority when a query is executed.
        foreach (var provider in SearchService.OrderedProviders)
            Debug.Log($"[{provider.priority}] {provider.name} ({provider.id})");
        #endregion
    }
}
```

## Static Properties

| Property                                                                                                 | Description                                               |
| -------------------------------------------------------------------------------------------------------- | --------------------------------------------------------- |
| [OrderedProviders](/engine/6000.6/script-reference/unityeditor/search/searchservice/orderedproviders.md) | Returns the list of search providers sorted by priority.  |
| [Providers](/engine/6000.6/script-reference/unityeditor/search/searchservice/providers.md)               | Returns the list of all search providers (active or not). |

## Static Methods

| Method                                                                                                       | Description                                                                                                                                             |
| ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [CreateContext](/engine/6000.6/script-reference/unityeditor/search/searchservice/createcontext.md)           | Creates context from a list of search provider IDs.                                                                                                     |
| [EnumerateDatabases](/engine/6000.6/script-reference/unityeditor/search/searchservice/enumeratedatabases.md) | Enumerate search databases.                                                                                                                             |
| [GetAction](/engine/6000.6/script-reference/unityeditor/search/searchservice/getaction.md)                   | Returns the search action for a given search provider and search action ID.                                                                             |
| [GetActiveProviders](/engine/6000.6/script-reference/unityeditor/search/searchservice/getactiveproviders.md) | Returns all active providers.                                                                                                                           |
| [GetProvider](/engine/6000.6/script-reference/unityeditor/search/searchservice/getprovider.md)               | Returns the data of a search provider given its ID.                                                                                                     |
| [IsIndexReady](/engine/6000.6/script-reference/unityeditor/search/searchservice/isindexready.md)             | Indicates if a search index is ready to be used.                                                                                                        |
| [Refresh](/engine/6000.6/script-reference/unityeditor/search/searchservice/refresh.md)                       | Clears everything and reloads all search providers. Use with care. Useful for unit tests.                                                               |
| [RefreshWindows](/engine/6000.6/script-reference/unityeditor/search/searchservice/refreshwindows.md)         | Refresh all currently opened Search windows.                                                                                                            |
| [Request](/engine/6000.6/script-reference/unityeditor/search/searchservice/request.md)                       | Executes a search request and callbacks for every batch of incoming results. It is possible to get duplicate items, so filter the final list if needed. |
| [SetActive](/engine/6000.6/script-reference/unityeditor/search/searchservice/setactive.md)                   | Activates or deactivates a search provider. Call Refresh after this to take effect on the next search.                                                  |
| [ShowContextual](/engine/6000.6/script-reference/unityeditor/search/searchservice/showcontextual.md)         | Open the search window using a specific context (activating specific filters).                                                                          |
| [ShowObjectPicker](/engine/6000.6/script-reference/unityeditor/search/searchservice/showobjectpicker.md)     | Open a Search Picker window for Unity objects.                                                                                                          |
| [ShowPicker](/engine/6000.6/script-reference/unityeditor/search/searchservice/showpicker.md)                 | Open a search item picker window.                                                                                                                       |
| [ShowWindow](/engine/6000.6/script-reference/unityeditor/search/searchservice/showwindow.md)                 | Creates a new search window.                                                                                                                            |
