From e2fe50c591706a7902048aaef911ce433522a322 Mon Sep 17 00:00:00 2001 From: Arun Isaac Date: Wed, 13 Jul 2022 13:27:30 +0530 Subject: document: Store serialized date as value in Xapian document. * tissue/document.scm (document-recency-date): Declare public generic function. (document-term-generator): Store serialized date in slot 0 of Xapian document. * tissue/file-document.scm (document-recency-date): New generic method. * tissue/commit.scm (document-recency-date): New generic method. --- tissue/document.scm | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'tissue/document.scm') diff --git a/tissue/document.scm b/tissue/document.scm index ef3ca21..ecdabc3 100644 --- a/tissue/document.scm +++ b/tissue/document.scm @@ -37,6 +37,7 @@ document-type document-id-term document-text + document-recency-date document-term-generator document-snippet-source-text document-snippet @@ -133,6 +134,7 @@ that operates on a copy of OBJECT. It does not mutate OBJECT." (define-generic document-id-term) (define-generic document-text) +(define-generic document-recency-date) (define-generic print) (define-generic document->sxml) @@ -151,7 +153,13 @@ and further text, increase-termpos! must be called before indexing." #:document (make-document #:data (call-with-output-string (cut write (object->scm document) <>)) - #:terms `((,(document-id-term document) . 0)))))) + #:terms `((,(document-id-term document) . 0)) + ;; This serialization of the recency date gets + ;; the timezone ordering wrong. TODO: Replace it + ;; with sortable-serialise once it is working in + ;; guile-xapian. + #:values `((0 . ,(date->iso-8601 + (document-recency-date document)))))))) (index-text! term-generator (document-type document) #:prefix "XT") (index-text! term-generator (document-title document) #:prefix "S") (index-text! term-generator (document-text document)) -- cgit v1.2.3