Commit Graph

173 Commits

Author SHA1 Message Date
Brad Fitzpatrick 1e1183a8bf search: add a forgotten Cancel.
Funny, because this one line is why I finally went and added the Context type
and started plumbing it through lots of stuff.

Change-Id: Ie419362048a485629e79725de9297fe485430d4a
2013-12-07 08:49:30 -08:00
Aaron Boodman d593b6f98a LogicalConstraint: typo in comment
Change-Id: I62345763e42832e2575f492a9678dbb0cfb65ec6
2013-12-07 07:11:16 -08:00
Brad Fitzpatrick cad54aa249 search: fix a panic in Query w/ describe, add tests
Change-Id: I4a2288298fbab8a51c795b9eaed5fc3488024132
2013-12-03 18:24:02 -08:00
Brad Fitzpatrick a7c7e717f6 search: optionally also describe matched blobs in same request
Change-Id: Id9c16c19fa309d0780c6107b1dd29880d777fd05
2013-12-02 20:29:50 -08:00
Brad Fitzpatrick bf4d2721ba search: efficient permanode queries, sorted, and with a limit.
Change-Id: I7f8edfe3636ff3f1344ebb41e27d23073c630ff5
2013-12-02 20:01:37 -08:00
Brad Fitzpatrick 4eaeee9ae3 Reduce in-memory size of image info dimensions.
For my personal server,

Before:
Corpus stats: 149.884 MiB mem: 787886 blobs (88.853 GiB) (279308 schema (6073 permanode, 150557 file (111819 image), ...)

After:
Corpus stats: 145.172 MiB mem: 787886 blobs (88.853 GiB) (279308 schema (6073 permanode, 150557 file (111819 image), ...)

Change-Id: I47484e46b1eb70c8c4b5ee356cdcb0ceecde94e7
2013-11-29 11:01:41 -08:00
mpl 1ee5fd20c5 search: deletions are not modifications
1) pkg/search: documented that deletions times do not
qualify as modtimes

2) pkg/index: got rid of DeletedAt, and keyDeletes

http://camlistore.org/issue/191

Change-Id: I39578913345454d36af4599e29e7053f46577846
2013-11-29 00:29:57 +01:00
Brad Fitzpatrick 1ec41b95f0 Speed up in-memory permanode attribute search.
Finishes Corpus.AppendPermanodeAttrValues and uses it in
PermanodeConstraint.

Change-Id: I031789e0974add24886cc0060e52ba538535c4e1
2013-11-27 12:47:04 -08:00
Brad Fitzpatrick 9a749ce73b search: efficient in-memory scans of permanode modtimes
Change-Id: I82d34544a86cd9f3a52c2b7140dd89eac32fbfa9
2013-11-26 19:47:00 -08:00
Brad Fitzpatrick 1455a14e72 search: some refactoring to ease future work speeding PermanodeConstraint queries
Change-Id: Iac98a632bd40c723481f8e635a2c34780e87a408
2013-11-26 19:05:43 -08:00
Brad Fitzpatrick a918fac281 search: let GetRecentPermanodes take a before param.
For infinite scroll.  Will be done better later, but this works for now.

Change-Id: I88dc7793b643226a4a5e3a583c5de5d4c7fa4819
2013-11-25 20:35:59 -08:00
Brad Fitzpatrick 9aaadc73b8 index: put ImageInfo in memory too
Change-Id: I8110df05dd14ec3ede2e49902b172ed9bf069bfb
2013-11-25 19:46:28 -08:00
Brad Fitzpatrick 2fb3d06d49 Remove dependency on the testing package from pkg/index. Polluted flags.
Change-Id: Id5492fcab022c03e40501830d9253b5605a14ee6
2013-11-24 17:45:45 -08:00
Aaron Boodman 650bd9b61e Display a folder icon and make camliPath attributes navigable.
Like we do for camliMember.

Change-Id: I2db51d7397e0f8ab86ea71716fe06099ba22005a
2013-11-22 22:49:07 -08:00
Brad Fitzpatrick c5037b76e6 Fix thumbnails, broken in cb31dd58d2
Change-Id: I82defd54f53d4f6c1a594185d5e9b7d3a4a92c07
2013-11-20 17:44:10 -08:00
Brad Fitzpatrick 531b4dc32b search: remove MIME from DescribedBlob; fix Handler tests.
Change-Id: I2d92155e3446325520d91379ac24becef49ca56f
2013-11-18 16:36:08 -08:00
Brad Fitzpatrick 48dba353e9 query: make all tests test in all three modes.
Change-Id: I945830ddb3bfe68a7223994b94d780b46503c95e
2013-11-17 20:20:27 -08:00
Brad Fitzpatrick cb31dd58d2 In-memory search: include FileInfo. More tests pass.
Change-Id: Ic33357b63d1d57dc174fe18360e920730016c903
2013-11-17 19:49:19 -08:00
Brad Fitzpatrick e8603b1293 Put claims in memory too for in-memory search. Required index schema version bump.
Change-Id: I194d65476bddea111277cd0b1472c56b5527226b
2013-11-17 16:52:51 -08:00
Brad Fitzpatrick 0b07171c0c index: change GetOwnerClaims interface for efficiency, rename to AppendClaims
Change-Id: Icec235961ed8a09256df87c5fe1455cbad81ae3f
2013-11-17 14:54:30 -08:00
Brad Fitzpatrick d82f02db50 Search optimization: keep blobs arranged by camliType in memory; use when possible.
Change-Id: I8b3ebcf7dfece21d17074da32dc20e4d600e4c50
2013-11-17 10:52:37 -08:00
Brad Fitzpatrick 3eb493599e in-memory search: better structure for keeping memory corpus and kv
index in sync, both at start-up and while running and receiving blobs.
They both use the same mechanism now.

Also adds KeyId to the index and Corpus, as the next step. Plenty more
row types remain...

Change-Id: Id79955ba25dc79d5fbd94b0e5248d33dcf71d97e
2013-11-17 09:41:45 -08:00
Brad Fitzpatrick 272db6545a index: change GetBlobMIMEType to GetBlobMeta. mime types on a blob was wrong anyway.
And some more of in-memory search, which this makes easier / less garbage-y.

Change-Id: If1fa7dd44842244ae5e5440f84e92d66dc3321fb
2013-11-16 19:40:14 -08:00
Brad Fitzpatrick f3cc3c7ed9 search: more in-memory search work. make tests verify Scan doesn't hit Storage.
also some string interning work.

Change-Id: I7864b56eb97318bce943afdca3b1212f4729a9a8
2013-11-16 18:50:01 -08:00
Brad Fitzpatrick e26eacfa2f index: return FileInfo and ImageInfo as values, not pointers.
Change-Id: I6aba3a74ce233cc834550b561f597e549fb2bfab
2013-11-16 17:49:28 -08:00
Brad Fitzpatrick 2984897ac7 search: more in-memory search work.
keep blob metadata in memory, and start of testing all search queries in three modes:
classic index.Storage scanning, all in-memory with corpus scanned from the index.Storage,
and the in-memory corpus built up over time as blobs arrive.

Change-Id: I40536e498a63bece5bd4897cdbbd0cef78085f44
2013-11-16 17:24:02 -08:00
Brad Fitzpatrick c573feb226 Make the search handler conditionally request the index be slurped into memory.
Change-Id: I7fadeba41c3b1bbcfbb0fd3470ff30cdf04b1b90
2013-11-16 15:18:16 -08:00
Brad Fitzpatrick 705107ad80 search/index: invert depedency. search now depends on index.
creates new package types/camtypes for misc types needed by both. might eventually go away as
search matures.

Change-Id: Ib771ead7bea39936ba478b7e5d58de997060861b
2013-11-16 15:00:30 -08:00
Brad Fitzpatrick 25eca52283 Merge "pkg/search: add modtime in WANT to fix tests" 2013-11-16 22:26:28 +00:00
Brad Fitzpatrick 7f8e035be6 search: little TODO
Change-Id: I38a98c9c9b77a899536cf0d7601ce2030d6f4dda
2013-11-16 12:54:11 -08:00
Brad Fitzpatrick 8a5161ec30 search: multiple constraints at top level
Change-Id: I964a0d394c3c03e2409c91fb1d240847ff07ddb3
2013-11-16 11:21:30 -08:00
Brad Fitzpatrick 17a9d061a0 search: ditch BlobSizeConstraint, use IntConstraint instead
Change-Id: I99bece643841feab777175479743b3bd1fc421b8
2013-11-16 11:10:09 -08:00
Brad Fitzpatrick 1e627ce7c3 search: change BlobMeta to have a CamliType, not a misleading MIMEType.
Change-Id: I1c6e111ef27aafd5a15f9b38746361093a78e9e6
2013-11-16 10:35:18 -08:00
mpl 01a8dbb163 pkg/search: add modtime in WANT to fix tests
Also fixed fakeindex clock to use a time.Time.
And synchronized the fakeindex and the indextests clocks to the
same origin.

Change-Id: I986abca300d61241069132619028f470cacd61da
2013-11-15 23:31:24 +01:00
Brad Fitzpatrick 9587b8e62e search: rename AttributeConstraint to PermanodeConstraint, add ModTime constraint 2013-11-14 15:31:44 -08:00
Brad Fitzpatrick e0c3cf9b01 search: optimize ClaimList.Less sort. duh. 2013-11-14 15:30:59 -08:00
Brad Fitzpatrick 6e7df1c6ee search: IntConstraint 2013-11-14 15:30:40 -08:00
Brad Fitzpatrick f718e64289 search: start of DirConstraint. mostly notes. not implementation.
Change-Id: I6403b4f9be2aa06778fb1ef96edde2896557c3c9
2013-11-09 18:56:52 -05:00
Brad Fitzpatrick 33b11f86b9 search: skip TestHandler in short mode
Change-Id: I6f0c651cf7bf4324c9c4d785400588c2ff08557e
2013-11-09 17:24:35 -05:00
Brad Fitzpatrick c9443d7c7b search: TimeConstraint
Change-Id: Ic50290109043c1ad906f25935e5fad4c2170ea77
2013-11-09 17:08:46 -05:00
Brad Fitzpatrick 4c70e14310 search: add LimitReader around JSON decoding. add some TODOs
Change-Id: I98069ef0aeb8c96cdc997c138222e0344981ead8
2013-11-08 14:49:23 -05:00
Brad Fitzpatrick 4d620d2c60 Merge.
Change-Id: I15452c93c287eacf42e50dac59549a23d5e219c2
2013-11-08 14:47:51 -05:00
Brad Fitzpatrick c477ef43bb search: FileConstraint, StringConstraint, start of TimeConstraint, EXIFConstraint
Change-Id: I8464a392f2671e75898b64295b0c2e2261292ff9
2013-11-08 14:46:00 -05:00
Hunter Freyer 3fb2a0be4f Adds server-side search query handler.
Change-Id: Id1bdaa0f5f5a208ccf41ce25e5c50970f66f9469
2013-11-08 13:39:20 -05:00
Brad Fitzpatrick 59f20db9b2 search: delete unimplemented and now-undesired BlobTypeConstraint
The CamliType and AnyCamliType are better.

Change-Id: I0fbe9e645fa0ca13d107f7012bcb0008dfd5d43d
2013-11-08 13:17:37 -05:00
Brad Fitzpatrick 948bc3ba48 search: query support for AttributeConstraint.ValueMatches (subqueries)
e.g. show me permanodes with a camliContent pointing to a jpeg over 2.5 MB

Change-Id: I8b9c5c4b3595b64538281f63db7852461fd0367c
2013-11-08 13:11:16 -05:00
Brad Fitzpatrick 9e1948be25 search: ValueSet
Change-Id: Ie8b1b2c24ab9dcefb4f5e5d2db885568646ca228
2013-11-08 11:35:21 -05:00
Brad Fitzpatrick 13a732c46b search: query permanode attributes (a start)
Change-Id: I1e6109df0d09edf894a32934eec5be7b6ad9fc1c
2013-11-08 11:25:51 -05:00
Brad Fitzpatrick 5e2a4d8e9a search: add Handler.Describe, make serveDescribe HTTP handler use it
Change-Id: I6f5a45b066aa02ad40cc7fdd2067ac6c178a62ab
2013-10-25 00:23:10 -07:00
Brad Fitzpatrick abdfd02bbb search: add camliImportRoot to set of indexed properties
Change-Id: I63a16e704569b2c834cda7cc9c84ce14bb31511d
2013-10-24 22:49:31 -07:00
Brad Fitzpatrick a78704c979 search: add AnyCamliType constraint
Change-Id: Ib129d4d365d040e0b12b2e3aa35c38a59ed7bc04
2013-10-18 19:10:59 -07:00
Brad Fitzpatrick ea079282d6 search: tests for logical operators
Change-Id: I3d389c3b58206fd98140834162aec17218bbce14
2013-10-18 18:50:19 -07:00
Brad Fitzpatrick f515ec9861 search: add test for blob prefix queries
Change-Id: If53acf332f8eb72d82735d8707a77a21694e83ba
2013-10-18 18:28:05 -07:00
Brad Fitzpatrick b9d4b7dc09 search: search on blob size
Change-Id: Id87fb65ebe0fec304637c6acb29ea27bd99d3bb1
2013-10-18 18:12:23 -07:00
Brad Fitzpatrick 7101fe1b64 search: search on CamliType
Change-Id: Ie4c0655da9407b49a67cd6d11240b697bd9bd6f0
2013-10-18 17:56:56 -07:00
Brad Fitzpatrick 17ecf8df07 search: start of general Query support. very rough draft.
Start of something that builds and 'works', but barely fleshed out at all.
Likely to change drastically yet.

Change-Id: I7fba25528a341ff2dbbc4dbb579f2450d7889320
2013-10-18 17:17:35 -07:00
Brad Fitzpatrick 7742892670 Merge branch 'master' of https://camlistore.googlesource.com/camlistore 2013-10-05 20:46:43 -10:00
Brad Fitzpatrick c8badb4404 Misc cleanups
Change-Id: I9183ca1ec7a98df210373f27ec3493c996f00f74
2013-10-05 20:46:39 -10:00
Aaron Boodman 74eb8e6c3c Further visual refinements to layout of homepage:
* Increase default image size a few settings
* Increase gutter between items
* Remove extraneous padding and whitepsace
* Remove unneeded gigantic heading
* Move build version into statusbar
* Change algorithm for fitting rows -- instead of preferring to clip
  edges of image, instead prefer to adjust height of rows. I find it
  looks more interesting visually when the widths of the images vary
  more.
* Replace folder and file icon with something better looking
* Swap order of + and - buttons in toolbar, they were backward from
  what is typical

Change-Id: Idfe85a813926c2c9eea774a86046df62ecacd45c
2013-10-04 14:04:38 -07:00
mpl 304f5c4b38 camput attr: support -del
Change-Id: I28460fed5b572ba9a83cfcb04f38e42124fa723f
2013-10-03 15:07:43 +02:00
Brad Fitzpatrick 128f56887b Handle GET and HEAD the same in more (all?) places.
Change-Id: I486a95f0a6fc127d17dcf0abeb94eab292980156
2013-09-15 20:12:26 +01:00
Brad Fitzpatrick 0375ee2d47 Do directory describe queries in parallel.
Change-Id: I9e3a4d97a97b177356d11d4ff0a735d80bfc63db
TODO: use syncutil.Group in many more places.
2013-09-12 16:22:00 +01:00
mpl d488c576fc search: support for static directory children
This change introduces a new index entry
to help with finding the children of a static directory.
It also fixes ResolvePrefixHop so that it takes
into account static directories, and not only collections.

This is the first step to support publishing static directories.

http://camlistore.org/issue/179

Change-Id: I5666e5caa6c782004054ae4c19a6b6119d4fda8b
2013-09-10 23:06:48 +02:00
Brad Fitzpatrick 3a5793b743 search: actually use result of SearchPermanodesWithAttr and don't leak a goroutine
Change-Id: Ia1ff8acc1d396901c6b589dbe9a972e3dd4df05f
2013-09-03 18:22:05 -07:00
Brad Fitzpatrick 0bdf20884b all: delete pkg/blobref; convert all from *blobref.BlobRef to new blob.Ref
Change-Id: Id2dfb7f19452bedf4f3c9310b36227fd8117b225
2013-08-03 19:54:30 -07:00
Aaron Boodman 24458fca93 Tile images nicely within BlobItemContainer.
Screenshots here: http://imgur.com/XN9qFLP,PeEDPnW,CS35Pw6,VS0nHaG,SNT1ZXZ,2nMWVYz,8RmuLuw,NE8b26n,EFErMdg

Change-Id: I6a66b5b782363882261b80e7ac9930ff1046efa6
2013-08-01 22:25:52 -07:00
Brad Fitzpatrick c28fcb4cda search: let the HTTP interface describe multiple blobs at once
Change-Id: I1998e0fa9a550fb15589bde6da1b549c14bcb97c
2013-07-11 20:17:05 +10:00
Brad Fitzpatrick 4a404a3c60 search: clean up describe handler and DescribeRequest
Change-Id: I4e6184765b6139de3bdc153d27a12d3cb205a55e
2013-07-11 10:35:06 +10:00
Brad Fitzpatrick d2b8d08397 search: make describe follow camliPath attributes
Change-Id: I875587a734d118a3f3fc204901ae1788247b91ab
2013-07-11 10:03:56 +10:00
Andrew Gerrand 64153d9f02 client,search: add withattr and describe to client
Change-Id: I9d55a7283bc7c99560e61aea80024c8f80dacc05
2013-07-10 21:10:18 +10:00
mpl 574b5feb96 Merge "publish: serve a zip of all files in a published path" 2013-07-08 13:32:01 +00:00
mpl 86b591cab9 publish: serve a zip of all files in a published path
Change-Id: I415f4d50936ab419695389dcda1facaf71565a8d
2013-07-08 13:00:41 +02:00
Brad Fitzpatrick 9468e5ba70 More docs. Every package is documented now.
misc.CountingReader moves into readerutil.

pkg/atomics is folded into pkg/types.

pkg/test/testdep is folded into pkg/test, with better name/docs.

Old cruft from pkg/webserver is deleted.

Change-Id: I3f72d8b29804254ef944995fb085837c878f79f5
2013-07-07 21:12:30 -07:00
Brad Fitzpatrick d832b6a06f Document PrefixHandler and clean up users with accessor functions.
Change-Id: Ib0b23ff3cc548a35c35eae1cdc59a8673dc19638
2013-06-12 11:17:30 +02:00
mpl af204bca92 newui: search page, with index page style
Change-Id: Iad9a3e914a4ffa79af6629c88a13a9946b7f3a2c
2013-05-19 00:38:19 +02:00
Brad Fitzpatrick 85c0fa9c61 Merge "search: factorize max results sanitation, allow max specified from ui" 2013-05-01 02:22:24 +00:00
mpl e9443ec182 search: refactor serveEdgesTo with annotated structs
http://camlistore.org/issue/99

Change-Id: I84ed551db4fecbd1ca06d76759d7512d1651bbf2
2013-04-26 18:33:27 +02:00
mpl 7c08f37abe search: factorize max results sanitation, allow max specified from ui
Change-Id: I066369829816189dbd2f682ce003c8b82022d131
2013-04-04 15:38:55 +02:00
mpl 0dfd84a7d8 search handler: return correct thumbnail dimensions
images: DecodeConfig to get the predicted width
and height after EXIF correction
search&index: add GetImageInfo and use it in search
to predict the thumbnail dimensions

http://camlistore.org/issue/115

Change-Id: I358136a2ab03ea09c8f8fd2fa0dc574921c819c5
2013-03-25 17:06:15 +01:00
mpl 5344af8e39 search handler: more tests, and fix for the describe depth race
http://camlistore.org/issue/121

Change-Id: I5807df784d9bd47f3cc8720a891d458ee722013b
2013-03-06 19:04:10 +01:00
Brad Fitzpatrick ace9474d95 index: index file times too, and return in index.GetFileInfo.
Change-Id: I59d91f0938c725a4cbdf5ca933cdff3529e25f5f
2013-02-18 21:31:41 -08:00
Brad Fitzpatrick 8155b3867a Fix case of MimeType to MIMEType, per Go style.
Change-Id: I6c67a61cea2c71d7fa5d52c4ae283e33e993fd0f
2013-02-18 11:16:13 -08:00
mpl 1b06e32f30 search handler: formalize and split serveSignerPaths
Change-Id: I8399b55aed45d3456b0cad89a4cf5bb6f4c57d69
2013-02-13 17:51:39 +01:00
mpl 46846e0844 search handler: getClaims: error out if nil permanode
Change-Id: Ieeb36ec3c3ed0c9f68abc6a659ba8f0b23a5bbb1
2013-02-12 16:46:16 +01:00
mpl 1f2b140bbd search handler: formalized and split serveClaims
Plus a few related cleanups (better httputil use).

Change-Id: I9ea34f2fe658624d05b7a6f347f5d946759a07b5
2013-02-12 01:18:46 +01:00
Brad Fitzpatrick f1845db855 search: split metaMap into metaMap and metaMapThumbs
Change-Id: I5a29166be7ed44a7c6a954ba689f1f3dbfbe57d7
2013-02-10 12:59:05 -08:00
Brad Fitzpatrick 7300184066 httputil, search: more HTTP util usage, deleting code.
Change-Id: I90e51a3e8b3fdd868b26a40446f9715aaa7f89c0
2013-02-08 22:21:09 -08:00
Brad Fitzpatrick e624e24c46 httputil/handler: start of more formal approach to input validation and HTTP error handling
Change-Id: I219a6263e1ba2d0e64819c01a885078dbf1c8b4c
2013-02-08 19:04:24 -08:00
Brad Fitzpatrick 3605285924 Add pkg/types with types.Time3339; use it in search/handler JSON types
Change-Id: I79bf1484ef8b3548bca2e732f189352bcfbcd6db
2013-02-08 18:10:31 -08:00
mpl 0a84607099 search handler: all funcs now rid of manual maps responses.
serveDescribe, servePermanodesWithAttr, and serveSignerPaths
rewritten like serveRecent. Got rid of populateJSON.

http://code.google.com/p/camlistore/issues/detail?id=101

Change-Id: Id730d40005476634b138b13260248e497d1a87d0
2013-02-09 02:12:06 +01:00
Brad Fitzpatrick 76735113f9 fs: recent directory works.
Change-Id: I13fb418e7ef32c8be8ab635b8179fbded5e18c79
2013-02-07 22:43:50 -08:00
Brad Fitzpatrick e867ea7dc0 client, search, fs: cammount now getting search queries back
Change-Id: I68541e9f9d54fa4240872d440972ad39f6bad33f
2013-02-07 21:55:17 -08:00
Brad Fitzpatrick a068e4d7aa search: separate out query logic from HTTP/JSON on GetRecentPermanodes
Change-Id: I4afb34aa548e83a2db2374a4cca2a9d5368473be
2013-02-07 21:34:25 -08:00
Brad Fitzpatrick f8639c5c5c search: fix error message
Change-Id: Ic89e3a32a919414746eeb1c96f3b694fabf9798a
2013-02-07 19:20:37 -08:00
Brad Fitzpatrick cfa43225d4 search: move thumbnailSize out into a func
Change-Id: If7d6ab242fe7fcef2174aa9dad12a85a06ce0091
2013-02-07 09:40:59 -08:00
Brad Fitzpatrick 6cc5f33da1 search: handler response type cleanup (Issue 99).
Notably, don't mix 'meta' bag keys with rest of response. Makes it easier for both Go and Closure types to not mix keys from one type with another type.

Change-Id: I65e51f2a6c236c5111b5a9b88830e1220d6b29d4
2013-02-07 09:33:00 -08:00
Brad Fitzpatrick c34fc8c345 search: use a struct for recent items, not manual map
Change-Id: I443983b3689434afc0471a55357a78d03c0bb18f
2013-02-07 08:05:31 -08:00
Brad Fitzpatrick 5a8afdf951 search: rename populateJSONThumbnails to populateJSONAndThumbnails
Change-Id: Ibd4db3909c01c8a352df1875de703c71d657c428
2013-02-07 07:54:45 -08:00
Brad Fitzpatrick 6e35c1c26e search: don't fail the whole search request if dir info isn't available
Change-Id: Iae78d099c608dbe41f8ce9ccad1a11d70d212c48
2013-01-20 11:12:32 -08:00
mpl 67c5678062 Index directories with "fileinfo", and use this to
find their name in a search request.

Fixes http://code.google.com/p/camlistore/issues/detail?id=79

Change-Id: I755afd8f52dbd2f8a48ba72bed0a6b0192d1dd71
2013-01-09 16:59:04 +01:00