# 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.7/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("SearchIndexerExample", FileUtil.GetUniqueTempPathInProject());

        // 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;

        // These calls will index the words "awesome", "unity" and "thisisitasuperlongword". These words will be searchable by prefixes or exact matches.
        searchIndexer.AddWord("awesome", baseScore, di);
        searchIndexer.AddWord("unity", baseScore, di);
        searchIndexer.AddWord("thisisitasuperlongword", 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.

> **Warning:**
>
> **Deprecated.** AddWord with variations is no longer supported. Variations are handled automatically internally. Please use AddWord(string word, int score, int documentIndex)

```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("SearchIndexerExample", FileUtil.GetUniqueTempPathInProject());

        // 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;

        // These calls will index the words "awesome", "unity" and "thisisitasuperlongword". These words will be searchable by prefixes or exact matches.
        searchIndexer.AddWord("awesome", baseScore, di);
        searchIndexer.AddWord("unity", baseScore, di);
        searchIndexer.AddWord("thisisitasuperlongword", 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.

> **Warning:**
>
> **Deprecated.** AddWord with variations is no longer supported. Variations are handled automatically internally. Please use AddWord(string word, int score, int documentIndex)

```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("SearchIndexerExample", FileUtil.GetUniqueTempPathInProject());

        // 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;

        // These calls will index the words "awesome", "unity" and "thisisitasuperlongword". These words will be searchable by prefixes or exact matches.
        searchIndexer.AddWord("awesome", baseScore, di);
        searchIndexer.AddWord("unity", baseScore, di);
        searchIndexer.AddWord("thisisitasuperlongword", 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();
        });
    }
}
```
