From: Arun Isaac <arunisaac@systemreboot.net>
To: 60410@debbugs.gnu.org, Ricardo Wurmus <rekado@elephly.net>
Cc: Arun Isaac <arunisaac@systemreboot.net>
Subject: [bug#60410] [PATCH 7/7] xapian: Preserve order of search results.
Date: Thu, 29 Dec 2022 20:24:00 +0000 [thread overview]
Message-ID: <20221229202400.28565-7-arunisaac@systemreboot.net> (raw)
In-Reply-To: <20221229201809.27997-1-arunisaac@systemreboot.net>
Xapian orders search results by relevance. Preserve this order.
* mumi/xapian.scm (search): Reverse search results after consing to
preserve the original order.
* mumi/messages.scm (status-with-cache): Do not sort bugs by their bug
number. Preserve the order of bugs passed to this function.
---
mumi/messages.scm | 13 ++++---------
mumi/xapian.scm | 21 +++++++++++----------
2 files changed, 15 insertions(+), 19 deletions(-)
diff --git a/mumi/messages.scm b/mumi/messages.scm
index b3ae962..fd52571 100644
--- a/mumi/messages.scm
+++ b/mumi/messages.scm
@@ -64,15 +64,10 @@
(define (status-with-cache ids)
"Invoke GET-STATUS, but only on those IDS that have not been cached
yet. Return new results alongside cached results."
- (let* ((cached (filter-map cached? ids))
- (uncached-ids (lset-difference eq?
- ids
- (map bug-num cached)))
- (new (filter-map bug-status uncached-ids )))
- ;; Cache new things
- (map (lambda (bug) (cache! (bug-num bug) bug)) new)
- ;; Return everything from cache
- (sort (append cached new) (lambda (a b) (< (bug-num a) (bug-num b))))))
+ (map (lambda (id)
+ (or (cached? id)
+ (cache! id (bug-status id))))
+ ids))
(define (extract-name address)
(or (assoc-ref address 'name)
diff --git a/mumi/xapian.scm b/mumi/xapian.scm
index ae01acc..7ca5bb8 100644
--- a/mumi/xapian.scm
+++ b/mumi/xapian.scm
@@ -339,16 +339,17 @@ intact."
;; Collapse on mergedwith value
(Enquire-set-collapse-key enq 2 1)
;; Fold over the results, return bug id.
- (mset-fold (lambda (item acc)
- (cons
- (document-data (mset-item-document item))
- acc))
- '()
- ;; Get an Enquire object from the database with the
- ;; search results. Then, extract the MSet from the
- ;; Enquire object.
- (enquire-mset enq
- #:maximum-items pagesize))))))
+ (reverse
+ (mset-fold (lambda (item acc)
+ (cons
+ (document-data (mset-item-document item))
+ acc))
+ '()
+ ;; Get an Enquire object from the database with the
+ ;; search results. Then, extract the MSet from the
+ ;; Enquire object.
+ (enquire-mset enq
+ #:maximum-items pagesize)))))))
(define* (index! #:key full?)
"Index all Debbugs log files corresponding to the selected
--
2.38.1
prev parent reply other threads:[~2022-12-29 20:26 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-12-29 20:18 [bug#60410] [PATCH 0/7] mumi: Boolean prefixes in xapian indexing and others Arun Isaac
2022-12-29 20:23 ` [bug#60410] [PATCH 1/7] xapian: Index several terms as boolean and without positions Arun Isaac
2022-12-31 18:09 ` Ricardo Wurmus
2022-12-31 23:02 ` Arun Isaac
2023-01-01 12:14 ` bug#60410: " Ricardo Wurmus
2022-12-29 20:23 ` [bug#60410] [PATCH 2/7] xapian: Declare some prefixes as boolean Arun Isaac
2023-01-01 23:19 ` Ricardo Wurmus
2023-01-02 17:01 ` Arun Isaac
2022-12-29 20:23 ` [bug#60410] [PATCH 3/7] xapian: Do not override the default OR implicit query operator Arun Isaac
2022-12-29 20:23 ` [bug#60410] [PATCH 4/7] messages: Remove unused set intersection feature in search-bugs Arun Isaac
2022-12-29 20:23 ` [bug#60410] [PATCH 5/7] messages: Offload limiting search results to xapian Arun Isaac
2022-12-29 20:23 ` [bug#60410] [PATCH 6/7] cache: Specify that cache! returns the cached value Arun Isaac
2022-12-29 20:24 ` Arun Isaac [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20221229202400.28565-7-arunisaac@systemreboot.net \
--to=arunisaac@systemreboot.net \
--cc=60410@debbugs.gnu.org \
--cc=rekado@elephly.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/guix.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.