Difference between revisions of "MetadataSearch"
Briancline (talk | contribs) (Filled out part of proposed structure from Lincoln's talk... more to come) |
(Added design session slides and API doc) |
||
Line 3: | Line 3: | ||
This document is a work in progress used to define the proposed API for searching account, container, and object metadata in Swift/Object Storage. It was discussed in a design summit session on 7 November 2013 at the Ice House summit in Hong Kong. | This document is a work in progress used to define the proposed API for searching account, container, and object metadata in Swift/Object Storage. It was discussed in a design summit session on 7 November 2013 at the Ice House summit in Hong Kong. | ||
+ | Proposed REST API: [[File:OSMS API v0.8 external.pdf]]<br/> | ||
Blueprint: https://blueprints.launchpad.net/swift/+spec/searchable-metadata<br/> | Blueprint: https://blueprints.launchpad.net/swift/+spec/searchable-metadata<br/> | ||
+ | Design session: http://icehousedesignsummit.sched.org/event/66176e0859c0fc933d50988b5dc89c12<br /> | ||
+ | Slides presented and discussed at design session: [[File:Object Storage Metadata Search Design Session v4.pdf]]<br/> | ||
Etherpad: https://etherpad.openstack.org/p/icehouse-swift-metadata-search<br /> | Etherpad: https://etherpad.openstack.org/p/icehouse-swift-metadata-search<br /> | ||
− | |||
* Existing implementations | * Existing implementations |
Revision as of 04:06, 12 November 2013
Contents
Proposed Metadata Search API
This document is a work in progress used to define the proposed API for searching account, container, and object metadata in Swift/Object Storage. It was discussed in a design summit session on 7 November 2013 at the Ice House summit in Hong Kong.
Proposed REST API: File:OSMS API v0.8 external.pdf
Blueprint: https://blueprints.launchpad.net/swift/+spec/searchable-metadata
Design session: http://icehousedesignsummit.sched.org/event/66176e0859c0fc933d50988b5dc89c12
Slides presented and discussed at design session: File:Object Storage Metadata Search Design Session v4.pdf
Etherpad: https://etherpad.openstack.org/p/icehouse-swift-metadata-search
- Existing implementations
Search API Version
- Extends base Swift API
- Doesn't affect existing base request handling
- Search API Version independent of base API version, e.g.:
GET /<object storage API version>[/<account>[/<container>[/<object>]]]?<search API version>/...
Search scopes
- An object (unlikely to be used):
/acct1/cont2/obj3
- A container (and all of its objects):
/acct1/cont2
- An account (and all of its containers and objects):
/acct1
- The entire object store (across all accounts):
[/]
Search criteria
[&query=[(]<query expr1>[ [AND|OR] <query expr2>][)][ [AND|OR]...] ]
...where:
query expr=<query attr><operator><query value>
...and `<operator>` is one of:
=, !=, <, <=, >, >=, ~
- Note: Generating SQL query for complex boolean expressions across multiple tables may be complex! (If using SQL)
- Simpler: support only AND (multiple ANDs OK)
- Services request shows whether simple (ANDs only) or complex supported