# AddWord

> Adds a new word coming from a document to the index. The word is added with multiple variations allowing partial search.

## Definition

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

## AddWord(string, int, int)

Adds a new word coming from a document to the index. The word is added with multiple variations allowing partial search.

```csharp
public void AddWord(string word, int score, int documentIndex)
```

### Parameters

**** (\[string]\(https\://learn.microsoft.com/dotnet/api/system.string)): Word to add to the index.**** (\[int]\(https\://learn.microsoft.com/dotnet/api/system.int32)): Relevance score of the word.**** (\[int]\(https\://learn.microsoft.com/dotnet/api/system.int32)): Document where the indexed word was found.

### Examples

```csharp
using UnityEditor;
using UnityEditor.Search;
using UnityEngine;

static class Example_SearchIndexer_AddWord
{
    [MenuItem("Examples/SearchIndexer/AddWord")]
    public static void Run()
    {
        // Create a search indexer
        var searchIndexer = new SearchIndexer("SearchIndexerAddWordExample");

        // Indicate that Search is about to index documents.
        searchIndexer.Start();

        // Add a document
        var di = searchIndexer.AddDocument("My/File/Path");

        // Index some words
        var baseScore = 42;

        // This will index all variation of the word awesome, i.e. aw, awe, awes, aweso, awesom and awesome
        searchIndexer.AddWord("awesome", baseScore, di);

        // This will index an exact match for "unity", so no variation.
        searchIndexer.AddWord("unity", "unity".Length, baseScore, di);

        // This will only index variations for the word from character indexes 3 to 6, e.g. thi, this, thisi and thisis
        searchIndexer.AddWord("thisisitasuperlongword", 3, 6, baseScore, di);

        // Indicate that searchIndexer is finished indexing a document and is ready to search.
        searchIndexer.Finish(() =>
        {
            // Search the index
            foreach (var result in searchIndexer.Search("unity awes this"))
                Debug.Log($"Found document [{result.index}] {result.id} ({result.score})");

            // Dispose of the SearchIndexer when you are done with it.
            searchIndexer.Dispose();
        });
    }
}
```

## AddWord(string, int, int, int)

Adds a new word coming from a document to the index. The word is added with multiple variations allowing partial search.

```csharp
public void AddWord(string word, int size, int score, int documentIndex)
```

### Parameters

**** (\[string]\(https\://learn.microsoft.com/dotnet/api/system.string)): Word to add to the index.**** (\[int]\(https\://learn.microsoft.com/dotnet/api/system.int32)): Number of variations to compute.**** (\[int]\(https\://learn.microsoft.com/dotnet/api/system.int32)): Relevance score of the word.**** (\[int]\(https\://learn.microsoft.com/dotnet/api/system.int32)): Document where the indexed word was found.

### Examples

```csharp
using UnityEditor;
using UnityEditor.Search;
using UnityEngine;

static class Example_SearchIndexer_AddWord
{
    [MenuItem("Examples/SearchIndexer/AddWord")]
    public static void Run()
    {
        // Create a search indexer
        var searchIndexer = new SearchIndexer("SearchIndexerAddWordExample");

        // Indicate that Search is about to index documents.
        searchIndexer.Start();

        // Add a document
        var di = searchIndexer.AddDocument("My/File/Path");

        // Index some words
        var baseScore = 42;

        // This will index all variation of the word awesome, i.e. aw, awe, awes, aweso, awesom and awesome
        searchIndexer.AddWord("awesome", baseScore, di);

        // This will index an exact match for "unity", so no variation.
        searchIndexer.AddWord("unity", "unity".Length, baseScore, di);

        // This will only index variations for the word from character indexes 3 to 6, e.g. thi, this, thisi and thisis
        searchIndexer.AddWord("thisisitasuperlongword", 3, 6, baseScore, di);

        // Indicate that searchIndexer is finished indexing a document and is ready to search.
        searchIndexer.Finish(() =>
        {
            // Search the index
            foreach (var result in searchIndexer.Search("unity awes this"))
                Debug.Log($"Found document [{result.index}] {result.id} ({result.score})");

            // Dispose of the SearchIndexer when you are done with it.
            searchIndexer.Dispose();
        });
    }
}
```

## AddWord(string, int, int, int, int)

Adds a new word coming from a document to the index. The word is added with multiple variations allowing partial search.

```csharp
public void AddWord(string word, int minVariations, int maxVariations, int score, int documentIndex)
```

### Parameters

**** (\[string]\(https\://learn.microsoft.com/dotnet/api/system.string)): Word to add to the index.**** (\[int]\(https\://learn.microsoft.com/dotnet/api/system.int32)): Minimum number of variations to compute. Cannot be higher than the length of the word.**** (\[int]\(https\://learn.microsoft.com/dotnet/api/system.int32)): Maximum number of variations to compute. Cannot be higher than the length of the word.**** (\[int]\(https\://learn.microsoft.com/dotnet/api/system.int32)): Relevance score of the word.**** (\[int]\(https\://learn.microsoft.com/dotnet/api/system.int32)): Document where the indexed word was found.

### Examples

```csharp
using UnityEditor;
using UnityEditor.Search;
using UnityEngine;

static class Example_SearchIndexer_AddWord
{
    [MenuItem("Examples/SearchIndexer/AddWord")]
    public static void Run()
    {
        // Create a search indexer
        var searchIndexer = new SearchIndexer("SearchIndexerAddWordExample");

        // Indicate that Search is about to index documents.
        searchIndexer.Start();

        // Add a document
        var di = searchIndexer.AddDocument("My/File/Path");

        // Index some words
        var baseScore = 42;

        // This will index all variation of the word awesome, i.e. aw, awe, awes, aweso, awesom and awesome
        searchIndexer.AddWord("awesome", baseScore, di);

        // This will index an exact match for "unity", so no variation.
        searchIndexer.AddWord("unity", "unity".Length, baseScore, di);

        // This will only index variations for the word from character indexes 3 to 6, e.g. thi, this, thisi and thisis
        searchIndexer.AddWord("thisisitasuperlongword", 3, 6, baseScore, di);

        // Indicate that searchIndexer is finished indexing a document and is ready to search.
        searchIndexer.Finish(() =>
        {
            // Search the index
            foreach (var result in searchIndexer.Search("unity awes this"))
                Debug.Log($"Found document [{result.index}] {result.id} ({result.score})");

            // Dispose of the SearchIndexer when you are done with it.
            searchIndexer.Dispose();
        });
    }
}
```
