diff options
author | Arun Isaac | 2020-02-16 09:19:48 +0530 |
---|---|---|
committer | Arun Isaac | 2020-02-16 09:19:48 +0530 |
commit | 16f38896815d91a9cf163814bc5ad0819f7faaaf (patch) | |
tree | fbb610c6319dd0ff150a24893beda2c39c62e838 /examples/index.scm | |
parent | da4cc75ea4a137a899922294e62eeb019fd56992 (diff) | |
download | guile-xapian-16f38896815d91a9cf163814bc5ad0819f7faaaf.tar.gz guile-xapian-16f38896815d91a9cf163814bc5ad0819f7faaaf.tar.lz guile-xapian-16f38896815d91a9cf163814bc5ad0819f7faaaf.zip |
examples: Add comments.
* examples/index.scm, examples/search.scm: Add comments.
Diffstat (limited to 'examples/index.scm')
-rw-r--r-- | examples/index.scm | 23 |
1 files changed, 22 insertions, 1 deletions
diff --git a/examples/index.scm b/examples/index.scm index 396df7c..292334e 100644 --- a/examples/index.scm +++ b/examples/index.scm @@ -22,25 +22,46 @@ (xapian xapian)) (define (index datapath dbpath) + ;; Open database for writing. call-with-writable-database + ;; automatically closes the database once we're done. (call-with-writable-database dbpath (lambda (db) (for-each (lambda (record) (match record ((description title identifier) - (let* ((idterm (string-append "Q" identifier)) + (let* (;; Make a document and tell the term generator to + ;; use it. The data of the document is stored for + ;; display purposes. Storing data is optional and + ;; can be skipped to cut down on database size. The + ;; unique idterm ensures each document ends up in + ;; the database only once no matter how many times + ;; we run the database. + (idterm (string-append "Q" identifier)) (doc (make-document #:data (call-with-output-string (cut write record <>)) #:terms `((,idterm . 0)))) (term-generator (make-term-generator #:stem (make-stem "en") #:document doc))) + ;; Index title and description with a suitable + ;; prefix. This is used to allow for searching separate + ;; fields as in title:sunwatch, description:leather, + ;; etc. (index-text! term-generator title #:prefix "S") (index-text! term-generator description #:prefix "XD") + + ;; Index title and description without prefixes for + ;; general search. (index-text! term-generator title) (increase-termpos! term-generator) (index-text! term-generator description) + + ;; Add the document to the database. The unique idterm + ;; ensures each object ends up in the database only once + ;; no matter how many times we run the indexer. (replace-document! db idterm doc))))) (call-with-input-file datapath read))))) +;; Handle command line arguments (match (command-line) ((_ datapath dbpath) (index datapath dbpath)) |