summaryrefslogtreecommitdiff
path: root/tissue/web/server.scm
diff options
context:
space:
mode:
authorArun Isaac2022-07-13 18:17:52 +0530
committerArun Isaac2022-07-19 17:37:07 +0530
commite00d944a93c92d401fa85ddf21b60f852bdd41f9 (patch)
treeb02fe2259f4682e4153311ad02e60d9020e61b7a /tissue/web/server.scm
parentf7170b4f5502f5aeb30620a2df4fc5a3049e9a95 (diff)
downloadtissue-e00d944a93c92d401fa85ddf21b60f852bdd41f9.tar.gz
tissue-e00d944a93c92d401fa85ddf21b60f852bdd41f9.tar.lz
tissue-e00d944a93c92d401fa85ddf21b60f852bdd41f9.zip
search: Sort by date on strictly boolean queries.
* issues/sort-by-date.gmi: Close issue. * tissue/search.scm (term-ref, query-terms-every): New functions. (boolean-query?): New public function. (search-fold): Sort by date on strictly boolean queries. * tissue/web/server.scm (handler): Sort by date on strictly boolean queries.
Diffstat (limited to 'tissue/web/server.scm')
-rw-r--r--tissue/web/server.scm20
1 files changed, 14 insertions, 6 deletions
diff --git a/tissue/web/server.scm b/tissue/web/server.scm
index 21fbf4a..1868591 100644
--- a/tissue/web/server.scm
+++ b/tissue/web/server.scm
@@ -287,12 +287,20 @@ STATE-DIRECTORY."
(sxml->html
(call-with-database (string-append state-directory "/" hostname "/xapian")
(lambda (db)
- (let ((mset (enquire-mset (enquire db (new-Query (Query-OP-FILTER)
- (parse-query search-query)
- (or (assq-ref filter-alist search-type)
- (Query-MatchAll))))
- #:offset 0
- #:maximum-items (database-document-count db))))
+ (let* ((query (new-Query (Query-OP-FILTER)
+ (parse-query search-query)
+ (or (assq-ref filter-alist search-type)
+ (Query-MatchAll))))
+ (mset (enquire-mset
+ (let ((enquire (enquire db query)))
+ ;; Sort by recency date (slot
+ ;; 0) when query is strictly
+ ;; boolean.
+ (when (boolean-query? query)
+ (Enquire-set-sort-by-value enquire 0 #t))
+ enquire)
+ #:offset 0
+ #:maximum-items (database-document-count db))))
(make-search-page
(reverse
(mset-fold (lambda (item result)