文档索引器的基类,提供方法根据特定模式大致以 log(n) 的速度检索文档。这使您能够更快速地搜索大型索引。
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 | 返回索引中的文档数量。 |
keywordCount | 返回索引中的关键字数量。 |
minQueryLength | 查询的最小长度。默认值为 1 个字符。 |
minWordIndexationLength | 索引词的最小尺寸。默认值为 2。 |
name | 索引的名称。通常,此名称由用户从 SearchDatabase.Settings 设置。 |
resolveDocumentHandler | 用于将文档 ID 解析为其他数据字符串的处理程序。 |
skipEntryHandler | 用于跳过条目的处理程序。 |
timestamp | 指示上次修改搜索索引的时间。 |
SearchIndexer | 创建一个新的默认 SearchIndexer。 |
AddDocument | 添加一个新的要索引的文档。 |
AddExactWord | 将一个来自文档的新词添加到索引中。该词将以多种变体添加,允许部分搜索。 |
AddNumber | 向索引中添加一个键值对。该键不会以变体添加。 |
AddProperty | 将一个属性值添加到索引中。属性使用键和字符串值指定。该值将以多种变体存储。 |
AddWord | 将一个来自文档的新词添加到索引中。该词将以多种变体添加,允许部分搜索。 |
Finish | 完成当前索引,排序和编译所有索引。 |
GetDocument | 根据其索引返回一个搜索文档。 |
GetMetaInfo | 获取特定文档的元数据。 |
IndexDocument | 在具体 SearchIndexer 中重写以索引文档内容的函数。 |
IsReady | 指示索引是否已完全构建、最新且可供搜索。 |
LoadBytes | 从二进制缓冲区异步(在另一个线程中)加载索引。 |
Merge | 将搜索索引内容合并到当前索引中。 |
Read | 读取流并从中填充索引。 |
SaveBytes | 获取此索引的字节表示形式。请参阅 SearchIndexer.Write。 |
Search | 在索引中运行一个搜索查询。 |
SetMetaInfo | 在特定文档上设置任意元数据。 |
SkipEntry | 在构建索引时调用,以查看是否需要索引指定文档。请参阅 SearchIndexer.skipEntryHandler。 |
Start | 开始索引条目。 |
Write | 将索引的二进制表示形式写入流。 |