[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[bug#39258] [PATCH 3/4] gnu: Generate xapian package search index.
From: |
Pierre Neidhardt |
Subject: |
[bug#39258] [PATCH 3/4] gnu: Generate xapian package search index. |
Date: |
Fri, 28 Feb 2020 09:04:39 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/26.3 (gnu/linux) |
Arun Isaac <address@hidden> writes:
> +(define (generate-package-search-index directory)
> + "Generate under DIRECTORY a xapian index of all the available packages."
> + (define db-path
> + (string-append directory %package-search-index))
> +
> + (mkdir-p (dirname db-path))
> + (call-with-writable-database db-path
> + (lambda (db)
> + (fold-packages (lambda (package _)
> + (let* ((idterm (string-append "Q" (package-name
> package)))
> + (doc (make-document #:data (package-name
> package)
> + #:terms `((,idterm . 0))))
> + (term-generator (make-term-generator #:stem
> (make-stem "en")
> +
> #:document doc)))
> + (index-text! term-generator (package-description
> package))
> + (replace-document! db idterm doc)))
I guess these non-functional functions (index-text!, replace-document!)
represent how Xapian works at the C++ level. Would it be possible to
make more functional bindings nonetheless?
--
Pierre Neidhardt
https://ambrevar.xyz/
signature.asc
Description: PGP signature
- [bug#39258] [PATCH 0/4] Xapian for Guix package search, Arun Isaac, 2020/02/27
- [bug#39258] [PATCH 3/4] gnu: Generate xapian package search index., Arun Isaac, 2020/02/27
- [bug#39258] [PATCH 3/4] gnu: Generate xapian package search index.,
Pierre Neidhardt <=
- [bug#39258] [PATCH 1/4] gnu: Add guile-xapian., Arun Isaac, 2020/02/27
- [bug#39258] [PATCH 4/4] gnu: Use xapian index for package search., Arun Isaac, 2020/02/27
- [bug#39258] [PATCH 2/4] build-self: Add guile-xapian to Guix dependencies., Arun Isaac, 2020/02/27
- [bug#39258] [PATCH 0/4] Xapian for Guix package search, Pierre Neidhardt, 2020/02/28