一个专门的 SearchIndexer,提供用于从自定义索引器索引 Unity 对象 的方法。
ObjectIndexer 只能在 CustomObjectIndexerAttribute 的上下文中使用,因此无法显式实例化。
[CustomObjectIndexer(typeof(Collider), version = 3)] static void IndexObjectSize(CustomObjectIndexerTarget target, ObjectIndexer indexer) { var collider = target.target as Collider; if (collider == null) return; var totalSize = CustomSelectors.ComputeColliderSize(collider); indexer.IndexNumber(target.documentIndex, "testsize", totalSize); }
请注意,您可以使用所有 SearchIndexer 的 Add*
索引方法将单词、属性和数字添加到搜索索引数据库。您还可以使用以下更高级的函数(即 IndexWord、IndexNumber、IndexProperty、IndexWordComponents 和 IndexPropertyComponents)来索引常见的 Unity 对象 属性。
IndexNumber | 将键值对添加到索引。键不会添加变体。 |
IndexProperty | 将属性值添加到索引。属性由键和字符串值指定。该值将存储多个变体。 |
IndexPropertyComponents | 索引属性值的多个变体。 |
IndexWord | 将来自特定文档的新单词添加到索引。该单词将添加多个变体,允许部分搜索。 |
IndexWordComponents | 将单词拆分为多个变体。 |
documentCount | 返回索引中的文档数量。 |
keywordCount | 返回索引中的关键字数量。 |
minQueryLength | 查询的最小长度。默认值为 1 个字符。 |
minWordIndexationLength | 最小索引单词大小。默认值为 2。 |
name | 索引的名称。通常,此名称由用户从 SearchDatabase.Settings 设置。 |
resolveDocumentHandler | 用于将文档 ID 解析为其他数据字符串的处理程序。 |
skipEntryHandler | 用于跳过条目的处理程序。 |
timestamp | 指示搜索索引最后修改的时间。 |
AddDocument | 添加要索引的新文档。 |
AddExactWord | 将来自文档的新单词添加到索引。该单词添加多个变体,允许部分搜索。 |
AddNumber | 将键值对添加到索引。键不会添加变体。 |
AddProperty | 将属性值添加到索引。属性由键和字符串值指定。该值将存储多个变体。 |
AddWord | 将来自文档的新单词添加到索引。该单词添加多个变体,允许部分搜索。 |
Finish | 完成当前索引、排序和所有索引的编译。 |
GetDocument | 通过其索引返回搜索文档。 |
GetMetaInfo | 获取特定文档的元数据。 |
IndexDocument | 在具体 SearchIndexer 中覆盖的函数,用于索引文档的内容。 |
IsReady | 指示索引是否已完全构建、最新且可供搜索。 |
LoadBytes | 从二进制缓冲区异步(在另一个线程中)加载索引。 |
Merge | 将搜索索引内容合并到当前索引。 |
Read | 读取流并从流中填充索引。 |
SaveBytes | 获取此索引的字节表示形式。请参阅 SearchIndexer.Write。 |
Search | 在索引中运行搜索查询。 |
SetMetaInfo | 在特定文档上设置任意元数据。 |
SkipEntry | 在构建索引时调用,以查看是否需要索引指定的文档。请参阅 SearchIndexer.skipEntryHandler。 |
Start | 开始索引条目。 |
Write | 在流上写入索引的二进制表示形式。 |