Base class for a document Indexer which provides methods for retrieving a document given a specific pattern in roughly log(n). This allows you to search a large index more quickly.
using UnityEditor; using UnityEditor.Search; using UnityEngine; static class Example_SearchIndexer { [MenuItem("Examples/SearchIndexer/Class")] public static void Run() { // Create a search indexer var searchIndexer = new SearchIndexer("SearchIndexerExample"); // Indicate that searchIndexer is about to index documents searchIndexer.Start(); // Add some documents var unityDocumentIndex = searchIndexer.AddDocument("Unity Technologies"); // Index some words var baseScore = 42; searchIndexer.AddWord("unity", baseScore, unityDocumentIndex); searchIndexer.AddWord("is", baseScore, unityDocumentIndex); searchIndexer.AddWord("awesome", baseScore, unityDocumentIndex); // Indicate that searchIndexer is finished indexing documents and is ready to search. searchIndexer.Finish(); // Wait for the indexation to finish. while (!searchIndexer.IsReady()) ; // Search the index foreach (var result in searchIndexer.Search("uni")) Debug.Log($"Found document [{result.index}] {result.id} ({result.score})"); } }
documentCount | Returns the number of documents in the index. |
keywordCount | Returns the number keywords in the index. |
minWordIndexationLength | Minimal indexed word size. Default is 2. |
name | Name of the index. Generally this name is set by a user from SearchDatabase.Settings. |
resolveDocumentHandler | Handler used to resolve a document ID to some other data string. |
skipEntryHandler | Handler used to skip entries. |
SearchIndexer | Creates a new default SearchIndexer. |
AddDocument | Adds a new document to be indexed. |
AddExactWord | Adds a new word coming from a document to the index. The word is added with multiple variations allowing partial search. |
AddNumber | Adds a key-number value pair to the index. The key won't be added with variations. |
AddProperty | Adds a property value to the index. A property is specified with a key and a string value. The value will be stored with multiple variations. |
AddWord | Adds a new word coming from a document to the index. The word is added with multiple variations allowing partial search. |
Finish | Finalizes the current index, sorting and compiling of all the indexes. |
GetDocument | Returns a search document by its index. |
GetMetaInfo | Get metadata of a specific document. |
IndexDocument | Function to override in a concrete SearchIndexer to index the content of a document. |
IsReady | Indicates if the index is fully built, up to date, and ready for search. |
LoadBytes | Loads the index asynchronously (in another thread) from a binary buffer. |
Read | Reads a stream and populates the index from it. |
SaveBytes | Get the bytes representation of this index. See SearchIndexer.Write. |
Search | Runs a search query in the index. |
SetMetaInfo | Set arbiraty metadata on a specific document. |
SkipEntry | Called when the index is built to see if a specified document needs to be indexed. See SearchIndexer.skipEntryHandler. |
Start | Starts indexing entries. |
Write | Writes a binary representation of the index on a stream. |