diff options
author | Arun Isaac | 2022-07-13 18:17:52 +0530 |
---|---|---|
committer | Arun Isaac | 2022-07-19 17:37:07 +0530 |
commit | e00d944a93c92d401fa85ddf21b60f852bdd41f9 (patch) | |
tree | b02fe2259f4682e4153311ad02e60d9020e61b7a /tissue/web/server.scm | |
parent | f7170b4f5502f5aeb30620a2df4fc5a3049e9a95 (diff) | |
download | tissue-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.scm | 20 |
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) |