diff --git a/SignalServiceKit/src/Storage/FullTextSearchFinder.swift b/SignalServiceKit/src/Storage/FullTextSearchFinder.swift index 9883a1062..5019d5fdf 100644 --- a/SignalServiceKit/src/Storage/FullTextSearchFinder.swift +++ b/SignalServiceKit/src/Storage/FullTextSearchFinder.swift @@ -33,8 +33,16 @@ public class FullTextSearchFinder: NSObject { // TODO a stricter "whole word" query for body text? let prefixQuery = "*\(normalized)*" + let maxSearchResults = 500 + var searchResultCount = 0 // (snippet: String, collection: String, key: String, object: Any, stop: UnsafeMutablePointer) - ext.enumerateKeysAndObjects(matching: prefixQuery, with: nil) { (snippet: String, _: String, _: String, object: Any, _: UnsafeMutablePointer) in + ext.enumerateKeysAndObjects(matching: prefixQuery, with: nil) { (snippet: String, _: String, _: String, object: Any, stop: UnsafeMutablePointer) in + guard searchResultCount < maxSearchResults else { + stop.pointee = true + return + } + searchResultCount = searchResultCount + 1 + block(object, snippet) } }