summary refs log tree commit diff
path: root/examples/search.scm
diff options
context:
space:
mode:
Diffstat (limited to 'examples/search.scm')
-rw-r--r--examples/search.scm11
1 files changed, 10 insertions, 1 deletions
diff --git a/examples/search.scm b/examples/search.scm
index 4b58313..fee945e 100644
--- a/examples/search.scm
+++ b/examples/search.scm
@@ -26,12 +26,17 @@
     ((description title identifier) title)))
 
 (define* (search dbpath querystring #:key (offset 0) (pagesize 10))
+  ;; Open database for reading. call-with-database automatically
+  ;; closes the database once we're done.
   (call-with-database dbpath
     (lambda (db)
-      (let ((query (parse-query querystring
+      (let (;; Parse querystring passing a stemmer and suitable
+            ;; prefixes for field search.
+            (query (parse-query querystring
                                 #:stemmer (make-stem "en")
                                 #:prefixes '(("title" ."S")
                                              ("description" . "XD")))))
+        ;; Fold over the results, printing them.
         (mset-fold (lambda (item _)
                      (format #t "~a: #~3,'0d ~a~%"
                              (mset-item-rank item)
@@ -41,8 +46,12 @@
                                   (document-data (mset-item-document item))
                                 read))))
                    #f
+                   ;; Get an Enquire object from the database with the
+                   ;; search results. Then, extract the MSet from the
+                   ;; Enquire object.
                    (enquire-mset (enquire db query) offset pagesize))))))
 
+;; Handle command line arguments
 (match (command-line)
   ((_ dbpath . query-terms)
    (search dbpath (string-join query-terms)))