Difference between revisions of "MetadataSearch"
(testing) |
Briancline (talk | contribs) (Fleshed out part of design summit content) |
||
Line 1: | Line 1: | ||
− | == | + | ==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. | ||
+ | |||
+ | Etherpad: https://etherpad.openstack.org/p/icehouse-swift-metadata-search | ||
+ | |||
+ | # 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>/... | ||
+ | |||
+ | |||
+ | # Scope can identify: | ||
+ | * 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 | ||
+ | |||
+ | ## Searching across accounts | ||
+ | |||
+ | ## "Authorized Searchers" feature | ||
+ | |||
+ | ## Search live and recently deleted items | ||
+ | |||
+ | # List of attributes to return | ||
+ | |||
+ | ## Complete URI structure | ||
+ | |||
+ | # Filter parameters | ||
+ | |||
+ | # Output format parameters |
Revision as of 22:04, 9 November 2013
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.
Etherpad: https://etherpad.openstack.org/p/icehouse-swift-metadata-search
- 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>/...
- Scope can identify:
- 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
- Searching across accounts
- "Authorized Searchers" feature
- Search live and recently deleted items
- List of attributes to return
- Complete URI structure
- Filter parameters
- Output format parameters