diff options
author | Arun Isaac | 2022-07-13 17:43:03 +0530 |
---|---|---|
committer | Arun Isaac | 2022-07-19 17:37:06 +0530 |
commit | d4cd8ad34b39cea2566e421d9b84ae6d73553db9 (patch) | |
tree | e94dc9fa7377cd33cfef81706d6d8858540ac86f /tissue/issue.scm | |
parent | e2fe50c591706a7902048aaef911ce433522a322 (diff) | |
download | tissue-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.scm | 24 |
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." |