Simplesimilarity는 시맨틱 텍스트 검색을위한 사용하기 쉬운 프레임 워크입니다.
iOS 18에서는 더 이상이 라이브러리를 사용하지 않는 것이 좋습니다. 이제 그 기능은 이제 Core Spotlight의 시스템 서비스로 제공됩니다. Apple의 WWDC 2024 세션 비디오 "핵심 스포트라이트를 통한 시맨틱 검색 지원"을 확인하십시오.
먼저 텍스트 코퍼스를 만들어야합니다. 코퍼스가 채워지면 쿼리를 실행할 수 있습니다. 이 방법은 일치하는 엔진 클래스의 일부입니다.
텍스트 코퍼스는 (큰) 수의 TextualData Structs로 구성됩니다. TextualData struct는 텍스트와 일부 메타 데이터입니다. TextualData 인스턴스를 생성하고 일치하는 엔진으로 전달합니다.
let textualData = allFeedItems.map { (feedItem) -> TextualData in
return TextualData(inputString: feedItem.title, origin: nil, originObject: feedItem)
}
matchingEngine.fillMatchingEngine(with: textualData, onlyRemoveFrequentStopwords: true, completion: completion)
텍스트 코퍼스가 생성되기 전에 언급 한 바와 같이 배경 스레드에서 발생하므로 코퍼스 제작이 완료되면 완료 블록을 전달해야합니다.
코퍼스가 만들어지면 쿼리 할 수 있습니다. 간단한 유사성이 텍스트 코퍼스의 짧은 쿼리 또는 짧은 항목에 대해 반드시 최적화되지는 않습니다. 쿼리에는 최소 2 단어가 포함되어야합니다. 텍스트 코퍼스의 항목은 문장이어야합니다.
텍스트 검색의 경우 여러 옵션이 있습니다.
try? matchingEngine.result(betterThan: 0.005, for: query, resultsFound: resultsFound)
ResultsFound는 다시 발견 된 결과를 전달하는 완료 블록입니다.
보시다시피 API는 정말 간단하고 사용하기 쉽습니다.
15000 개의 항목으로 텍스트 코퍼스를 만드는 것은 iPhone 6s에서 약 20 초가 걸립니다.
귀하의 기여는 가장 환영합니다.