summaryrefslogtreecommitdiff
path: root/tissue/issue.scm
diff options
context:
space:
mode:
authorArun Isaac2022-07-13 17:43:03 +0530
committerArun Isaac2022-07-19 17:37:06 +0530
commitd4cd8ad34b39cea2566e421d9b84ae6d73553db9 (patch)
treee94dc9fa7377cd33cfef81706d6d8858540ac86f /tissue/issue.scm
parente2fe50c591706a7902048aaef911ce433522a322 (diff)
downloadtissue-d4cd8ad34b39cea2566e421d9b84ae6d73553db9.tar.gz
tissue-d4cd8ad34b39cea2566e421d9b84ae6d73553db9.tar.lz
tissue-d4cd8ad34b39cea2566e421d9b84ae6d73553db9.zip
document: Index boolean terms.
Metadata that will be used in boolean filtering should be indexed as boolean terms, not as free text. This also results in the happy coincidence that we no longer need a specialized document-term-generator generic method for <issue> and <commit>. * tissue/document.scm (document-boolean-terms): New public generic function. (document-term-generator): Use document-boolean-terms. * tissue/issue.scm (document-boolean-terms): New generic method. (document-term-generator): Delete generic method. * tissue/commit.scm (document-boolean-terms): New generic method. (document-term-generator): Delete generic method.
Diffstat (limited to 'tissue/issue.scm')
-rw-r--r--tissue/issue.scm24
1 files changed, 11 insertions, 13 deletions
diff --git a/tissue/issue.scm b/tissue/issue.scm
index 3fb21cc..23625fa 100644
--- a/tissue/issue.scm
+++ b/tissue/issue.scm
@@ -58,19 +58,17 @@
(tasks #:accessor issue-tasks #:init-keyword #:tasks)
(completed-tasks #:accessor issue-completed-tasks #:init-keyword #:completed-tasks))
-(define-method (document-term-generator (issue <issue>))
- "Return a term generator indexing ISSUE."
- (let ((term-generator (next-method)))
- (index-person! term-generator (file-document-creator issue) "A")
- (index-person! term-generator (file-document-last-updater issue) "XA")
- (for-each (cut index-person! term-generator <> "XI")
- (issue-assigned issue))
- (for-each (cut index-text! term-generator <> #:prefix "K")
- (issue-keywords issue))
- (index-text! term-generator
- (if (issue-open? issue) "open" "closed")
- #:prefix "XS")
- term-generator))
+(define-method (document-boolean-terms (issue <issue>))
+ "Return the boolean terms in ISSUE."
+ (append (list (string-append "A" (file-document-creator issue))
+ (string-append "XA" (file-document-last-updater issue))
+ (string-append "XS" (if (issue-open? issue)
+ "open" "closed")))
+ (map (cut string-append "XI" <>)
+ (issue-assigned issue))
+ (map (cut string-append "K" <>)
+ (issue-keywords issue))
+ (next-method)))
(define-method (print (issue <issue>) mset port)
"Print ISSUE, an <issue> object, in search results."