From 729befa5cb7cb3d16320ca9d7780130019cb0c7b Mon Sep 17 00:00:00 2001 From: Michael Kirk Date: Mon, 11 Jun 2018 11:09:39 -0400 Subject: [PATCH] CR: Cap max search results // FREEBIE --- .../src/Storage/FullTextSearchFinder.swift | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) 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) } }