perkeep/pkg/index
mpl 03103f00fa pkg/search: add some DirConstraint search functionality
The DirConstraint type already existed but wasn't functional as none of
the matching for any of its fields was implemented.

That functionality is required by two other features:

1) Browsing directories in the publisher requires getting information
about the children of the directory. In practice that can be achieved
with a search on the directory, accompanied with some describe rules.
But that comes with limitations, such as:
-no control over the sorting of the described children in the response
-max number of children in the response (and no way to overcome it since
you can't "continue" on a describe)
hence the need for a direct search of a directory's children.
This is implemented as DirConstraint/FileConstraint.ParentDir and will
be used in https://camlistore-review.googlesource.com/8286

2) Looking for files/directories shared by transitivity.
Knowing if an item is the target of a share claim is easy enough once
enough of ClaimConstraint is implemented. But in order to find out if an
item is effectively shared because one of its ancestors (directory) is
the target of a share claim, with transitivity set, we need some sort of
search that can do directories traversal. This is implemented as
DirConstraint.RecursiveContains and it will be used as a subquery in
https://camlistore-review.googlesource.com/9866.

Now implemented:
	DirConstraint.FileName
	DirConstraint.BlobRefPrefix
	DirConstraint.ParentDir
	DirConstraint.TopFileCount
	DirConstraint.Contains
	DirConstraint.RecursiveContains

ParentDir will also allow us to quit relying on the treeHandler in the
web UI,
and to use the more generic search queries mechanism instead.

Change-Id: I022cb51732ee4271906271fd75c6f737856b6165
2018-05-01 17:55:41 -07:00
..
indextest pkg/search: add some DirConstraint search functionality 2018-05-01 17:55:41 -07:00
sqlindex all: update copyright holder from Google Inc to The Perkeep Authors 2018-01-03 16:52:49 -08:00
sqlite Rename import paths from camlistore.org to perkeep.org. 2018-01-01 16:03:34 -08:00
stress blobserver, all: add contexts to ReceiveBlob, Fetch & million resulting deps 2018-01-18 16:22:16 -08:00
corpus.go pkg/search: add some DirConstraint search functionality 2018-05-01 17:55:41 -07:00
corpus_bench_test.go all: more renaming of Camlistore to Perkeep 2018-01-30 03:02:56 -08:00
corpus_test.go pkg/index: convert more funcs to using a GPG key ID 2018-03-02 19:58:18 +01:00
doc.go all: update copyright holder from Google Inc to The Perkeep Authors 2018-01-03 16:52:49 -08:00
enumstat.go blobserver: change BlobStatter interface, simplify proxycache 2018-01-08 16:54:52 -08:00
export_test.go pkg/index: fix location in corpus to use signer ID instead of blobRef 2018-01-23 19:11:52 +01:00
index.go pkg/search: add some DirConstraint search functionality 2018-05-01 17:55:41 -07:00
index_test.go all: simpify constructs by running gofmt -s on all code 2018-01-21 10:27:12 -08:00
interface.go pkg/search: add some DirConstraint search functionality 2018-05-01 17:55:41 -07:00
keys.go pkg/index: use the gpg ID (and not its blobRef) in corpus 2018-01-19 17:26:48 +01:00
keys_test.go all: update copyright holder from Google Inc to The Perkeep Authors 2018-01-03 16:52:49 -08:00
kvfile_test.go all: update copyright holder from Google Inc to The Perkeep Authors 2018-01-03 16:52:49 -08:00
leveldb_test.go Rename import paths from camlistore.org to perkeep.org. 2018-01-01 16:03:34 -08:00
location.go pkg/search: start to make funcs use a GPG key ID instead of blobRef 2018-02-07 00:54:38 +01:00
memindex.go all: update copyright holder from Google Inc to The Perkeep Authors 2018-01-03 16:52:49 -08:00
mongo_test.go all: update copyright holder from Google Inc to The Perkeep Authors 2018-01-03 16:52:49 -08:00
mysql_test.go Move more packages out of pkg/ and into internal/ 2018-01-02 21:03:30 -08:00
postgres_test.go Move more packages out of pkg/ and into internal/ 2018-01-02 21:03:30 -08:00
receive.go internal/images: broaden pattern that matches HEIC images 2018-04-27 12:29:00 -07:00
reversetime.go all: update copyright holder from Google Inc to The Perkeep Authors 2018-01-03 16:52:49 -08:00
sniff.go all: more renaming of Camlistore to Perkeep 2018-01-30 03:02:56 -08:00
util.go pkg/search: start to make funcs use a GPG key ID instead of blobRef 2018-02-07 00:54:38 +01:00
util_test.go all: more renaming of Camlistore to Perkeep 2018-01-30 03:02:56 -08:00