Unity 6.3
0 онлайн 77 гостей 3 в системе
Вход

SearchIndexer.Search

Declaration

public IEnumerable<SearchResult> Search(Search.SearchContext context, Search.SearchProvider provider, int maxScore, int patternMatchLimit);
public IEnumerable<SearchResult> Search(string query, Search.SearchContext context, Search.SearchProvider provider, int maxScore, int patternMatchLimit);
public IEnumerable<SearchResult> Search(string query, int maxScore, int patternMatchLimit);

Параметры

Параметр Описание
поиск Поисковый запрос. Если он совпадает с любым из проиндексированных вариантов, возвращается результат.
контекст Контекст поиска, к которому применяется запрос.
провайдер Поставщик поиска, инициировавший поиск.
maxScore Максимальный балл соответствия любого соответствующего результата поиска. См. SearchResult.score.
patternMatchLimit Максимальное количество соответствующих результатов поиска, которые могут быть возвращены. См. SearchResult.

Возвращаемое значение

IEnumerable<SearchResult> Возвращает набор результатов поиска, соответствующих запросу.

Описание

Выполняет запрос поиска в индексе.

using System.Linq;
using UnityEditor;
using UnityEditor.Search;
using UnityEngine;

static class Example_SearchIndexer_Search
{
    [MenuItem("Examples/SearchIndexer/Search")]
    public static void Run()
    {
        var si = new SearchIndexer("SearchIndexerExample", FileUtil.GetUniqueTempPathInProject());
        si.Start();

        // Index some documents and properties
        si.AddProperty("color", "red", si.AddDocument("RGB 55"));
        si.AddProperty("color", "reddish", si.AddDocument("RGB 45"));
        si.AddProperty("color", "yellow", si.AddDocument("RGB 66"));

        si.Finish(() =>
        {
            // Search document with property color=red*
            var results = si.Search("color:red").ToList();
            Debug.Assert(results.Count == 2);
            if (results.Count > 0)
                Debug.Log(string.Join(", ", results.Select(r => $"{r.id} [{r.score}]")));
            // Dispose of the SearchIndexer when you are done with it.
            si.Dispose();
        });
    }
}