O SimpleMilarity é uma estrutura fácil de usar para pesquisa semântica de texto.
Eu recomendo não usar mais esta biblioteca no iOS 18. Seus recursos agora estão disponíveis como um serviço de sistema no centro de destaque. Por favor, verifique o vídeo da sessão WWDC 2024 da Apple "Support semântico Pesquisa com o Core Spotlight".
Primeiro você precisa criar um corpus de texto. Quando o corpus é preenchido, você pode executar consultas contra ele. Esses métodos fazem parte da classe MatchingEngine.
O corpus de texto consiste em um número (grande) de estruturas de dados textual. A estrutura textualData é o texto mais alguns metadados. Você cria instâncias textualData e as passa para o mecanismo correspondente:
let textualData = allFeedItems.map { (feedItem) -> TextualData in
return TextualData(inputString: feedItem.title, origin: nil, originObject: feedItem)
}
matchingEngine.fillMatchingEngine(with: textualData, onlyRemoveFrequentStopwords: true, completion: completion)
Como observado antes da criação do corpus de texto, ocorre em um tópico de segundo plano, você precisa passar em um bloco de conclusão para não ser suficiente quando a criação do corpus for concluída.
Depois que o corpus foi criado, você pode consultá -lo. A simpleidade não é necessariamente otimizada para consultas curtas ou entradas curtas no corpus de texto. A consulta deve conter pelo menos 2 palavras. As entradas no corpus de texto devem ser sentenças.
Para pesquisa textual, você tem várias opções:
try? matchingEngine.result(betterThan: 0.005, for: query, resultsFound: resultsFound)
Resultados Fund é novamente um bloco de conclusão que passa nos resultados encontrados.
Portanto, como você pode ver, a API é realmente simples e fácil de usar.
A criação de um corpus de texto com 15000 entradas leva cerca de 20 segundos em um iPhone 6s.
Suas contribuições são muito bem -vindas.