From 7d82d8b76f442eb8531b0bd5da877e945dc6d9aa Mon Sep 17 00:00:00 2001 From: William Casarin Date: Fri, 27 Sep 2024 12:36:20 -0700 Subject: [PATCH] search: expand search results to 128 This continues our hack due to the way the compiler bridges to static sized arrays. yes its horrible. no i don't care. Changelog-Changed: Expand nostrdb text search results to 128 items Signed-off-by: William Casarin --- damus/Views/Search/PullDownSearch.swift | 4 +- damus/Views/SearchResultsView.swift | 2 +- nostrdb/Ndb.swift | 109 +++++++++++++++++++++++- 3 files changed, 111 insertions(+), 4 deletions(-) diff --git a/damus/Views/Search/PullDownSearch.swift b/damus/Views/Search/PullDownSearch.swift index 63bc7b75..2e332720 100644 --- a/damus/Views/Search/PullDownSearch.swift +++ b/damus/Views/Search/PullDownSearch.swift @@ -18,8 +18,8 @@ struct PullDownSearchView: View { let on_cancel: () -> Void func do_search(query: String) { - let limit = 16 - var note_keys = state.ndb.text_search(query: query, limit: limit, order: .newest_first) + let limit = 128 + let note_keys = state.ndb.text_search(query: query, limit: limit, order: .newest_first) var res = [NostrEvent]() // TODO: fix duplicate results from search var keyset = Set() diff --git a/damus/Views/SearchResultsView.swift b/damus/Views/SearchResultsView.swift index b014a530..47cc2cdb 100644 --- a/damus/Views/SearchResultsView.swift +++ b/damus/Views/SearchResultsView.swift @@ -141,7 +141,7 @@ struct SearchResultsView: View { let debouncer: Debouncer = Debouncer(interval: 0.25) func do_search(query: String) { - let limit = 16 + let limit = 128 var note_keys = damus_state.ndb.text_search(query: query, limit: limit, order: .newest_first) var res = [NostrEvent]() // TODO: fix duplicate results from search diff --git a/nostrdb/Ndb.swift b/nostrdb/Ndb.swift index 65616606..32bbcf94 100644 --- a/nostrdb/Ndb.swift +++ b/nostrdb/Ndb.swift @@ -215,7 +215,7 @@ class Ndb { return NdbNote(note: note_p, size: size, owned: false, key: key) } - func text_search(query: String, limit: Int = 32, order: NdbSearchOrder = .newest_first) -> [NoteKey] { + func text_search(query: String, limit: Int = 128, order: NdbSearchOrder = .newest_first) -> [NoteKey] { guard let txn = NdbTxn(ndb: self) else { return [] } var results = ndb_text_search_results() let res = query.withCString { q in @@ -253,6 +253,113 @@ class Ndb { case 18: note_ids.append(results.results.18.key.note_id) case 19: note_ids.append(results.results.19.key.note_id) case 20: note_ids.append(results.results.20.key.note_id) + case 21: note_ids.append(results.results.21.key.note_id) + case 22: note_ids.append(results.results.22.key.note_id) + case 23: note_ids.append(results.results.23.key.note_id) + case 24: note_ids.append(results.results.24.key.note_id) + case 25: note_ids.append(results.results.25.key.note_id) + case 26: note_ids.append(results.results.26.key.note_id) + case 27: note_ids.append(results.results.27.key.note_id) + case 28: note_ids.append(results.results.28.key.note_id) + case 29: note_ids.append(results.results.29.key.note_id) + case 30: note_ids.append(results.results.30.key.note_id) + case 31: note_ids.append(results.results.31.key.note_id) + case 32: note_ids.append(results.results.32.key.note_id) + case 33: note_ids.append(results.results.33.key.note_id) + case 34: note_ids.append(results.results.34.key.note_id) + case 35: note_ids.append(results.results.35.key.note_id) + case 36: note_ids.append(results.results.36.key.note_id) + case 37: note_ids.append(results.results.37.key.note_id) + case 38: note_ids.append(results.results.38.key.note_id) + case 39: note_ids.append(results.results.39.key.note_id) + case 40: note_ids.append(results.results.40.key.note_id) + case 41: note_ids.append(results.results.41.key.note_id) + case 42: note_ids.append(results.results.42.key.note_id) + case 43: note_ids.append(results.results.43.key.note_id) + case 44: note_ids.append(results.results.44.key.note_id) + case 45: note_ids.append(results.results.45.key.note_id) + case 46: note_ids.append(results.results.46.key.note_id) + case 47: note_ids.append(results.results.47.key.note_id) + case 48: note_ids.append(results.results.48.key.note_id) + case 49: note_ids.append(results.results.49.key.note_id) + case 50: note_ids.append(results.results.50.key.note_id) + case 51: note_ids.append(results.results.51.key.note_id) + case 52: note_ids.append(results.results.52.key.note_id) + case 53: note_ids.append(results.results.53.key.note_id) + case 54: note_ids.append(results.results.54.key.note_id) + case 55: note_ids.append(results.results.55.key.note_id) + case 56: note_ids.append(results.results.56.key.note_id) + case 57: note_ids.append(results.results.57.key.note_id) + case 58: note_ids.append(results.results.58.key.note_id) + case 59: note_ids.append(results.results.59.key.note_id) + case 60: note_ids.append(results.results.60.key.note_id) + case 61: note_ids.append(results.results.61.key.note_id) + case 62: note_ids.append(results.results.62.key.note_id) + case 63: note_ids.append(results.results.63.key.note_id) + case 64: note_ids.append(results.results.64.key.note_id) + case 65: note_ids.append(results.results.65.key.note_id) + case 66: note_ids.append(results.results.66.key.note_id) + case 67: note_ids.append(results.results.67.key.note_id) + case 68: note_ids.append(results.results.68.key.note_id) + case 69: note_ids.append(results.results.69.key.note_id) + case 70: note_ids.append(results.results.70.key.note_id) + case 71: note_ids.append(results.results.71.key.note_id) + case 72: note_ids.append(results.results.72.key.note_id) + case 73: note_ids.append(results.results.73.key.note_id) + case 74: note_ids.append(results.results.74.key.note_id) + case 75: note_ids.append(results.results.75.key.note_id) + case 76: note_ids.append(results.results.76.key.note_id) + case 77: note_ids.append(results.results.77.key.note_id) + case 78: note_ids.append(results.results.78.key.note_id) + case 79: note_ids.append(results.results.79.key.note_id) + case 80: note_ids.append(results.results.80.key.note_id) + case 81: note_ids.append(results.results.81.key.note_id) + case 82: note_ids.append(results.results.82.key.note_id) + case 83: note_ids.append(results.results.83.key.note_id) + case 84: note_ids.append(results.results.84.key.note_id) + case 85: note_ids.append(results.results.85.key.note_id) + case 86: note_ids.append(results.results.86.key.note_id) + case 87: note_ids.append(results.results.87.key.note_id) + case 88: note_ids.append(results.results.88.key.note_id) + case 89: note_ids.append(results.results.89.key.note_id) + case 90: note_ids.append(results.results.90.key.note_id) + case 91: note_ids.append(results.results.91.key.note_id) + case 92: note_ids.append(results.results.92.key.note_id) + case 93: note_ids.append(results.results.93.key.note_id) + case 94: note_ids.append(results.results.94.key.note_id) + case 95: note_ids.append(results.results.95.key.note_id) + case 96: note_ids.append(results.results.96.key.note_id) + case 97: note_ids.append(results.results.97.key.note_id) + case 98: note_ids.append(results.results.98.key.note_id) + case 99: note_ids.append(results.results.99.key.note_id) + case 100: note_ids.append(results.results.100.key.note_id) + case 101: note_ids.append(results.results.101.key.note_id) + case 102: note_ids.append(results.results.102.key.note_id) + case 103: note_ids.append(results.results.103.key.note_id) + case 104: note_ids.append(results.results.104.key.note_id) + case 105: note_ids.append(results.results.105.key.note_id) + case 106: note_ids.append(results.results.106.key.note_id) + case 107: note_ids.append(results.results.107.key.note_id) + case 108: note_ids.append(results.results.108.key.note_id) + case 109: note_ids.append(results.results.109.key.note_id) + case 110: note_ids.append(results.results.110.key.note_id) + case 111: note_ids.append(results.results.111.key.note_id) + case 112: note_ids.append(results.results.112.key.note_id) + case 113: note_ids.append(results.results.113.key.note_id) + case 114: note_ids.append(results.results.114.key.note_id) + case 115: note_ids.append(results.results.115.key.note_id) + case 116: note_ids.append(results.results.116.key.note_id) + case 117: note_ids.append(results.results.117.key.note_id) + case 118: note_ids.append(results.results.118.key.note_id) + case 119: note_ids.append(results.results.119.key.note_id) + case 120: note_ids.append(results.results.120.key.note_id) + case 121: note_ids.append(results.results.121.key.note_id) + case 122: note_ids.append(results.results.122.key.note_id) + case 123: note_ids.append(results.results.123.key.note_id) + case 124: note_ids.append(results.results.124.key.note_id) + case 125: note_ids.append(results.results.125.key.note_id) + case 126: note_ids.append(results.results.126.key.note_id) + case 127: note_ids.append(results.results.127.key.note_id) default: break }