La simplicité est un framework facile à utiliser pour la recherche de texte sémantique.
Je recommande de ne plus utiliser cette bibliothèque dans iOS 18. Ses fonctionnalités sont désormais disponibles en tant que service système sous Core Spotlight. Veuillez vérifier la vidéo de session WWDC 2024 d'Apple "Prise en charge de la recherche sémantique avec Spotlight Core".
Vous devez d'abord créer un corpus de texte. Lorsque le corpus est rempli, vous pouvez exécuter des requêtes contre elle. Ces méthodes font partie de la classe MatchingEngine.
Le corpus de texte se compose d'un (grand) nombre de structures textuelles. La structure TextualData est le texte plus quelques métadonnées. Vous créez des instances TextualData et les transmettez au moteur correspondant:
let textualData = allFeedItems.map { (feedItem) -> TextualData in
return TextualData(inputString: feedItem.title, origin: nil, originObject: feedItem)
}
matchingEngine.fillMatchingEngine(with: textualData, onlyRemoveFrequentStopwords: true, completion: completion)
Comme indiqué avant la création du corpus de texte se produit sur un fil d'arrière-plan, vous devez donc passer dans un bloc d'achèvement pour ne pas être défini lorsque la création du corpus est terminée.
Une fois le corpus créé, vous pouvez l'interroger. La simplicité n'est pas nécessairement optimisée pour les requêtes courtes ou les entrées courtes dans le corpus de texte. La requête doit contenir au moins 2 mots. Les entrées du corpus de texte doivent être des phrases.
Pour la recherche textuelle, vous avez plusieurs options:
try? matchingEngine.result(betterThan: 0.005, for: query, resultsFound: resultsFound)
Résultats-Found est à nouveau un bloc d'achèvement qui passe dans les résultats trouvés.
Donc, comme vous pouvez le voir, l'API est vraiment simple et facile à utiliser.
La création d'un corpus de texte avec 15000 entrées prend environ 20 secondes sur un iPhone 6S.
Vos contributions sont les bienvenues.