6464 - Filter: ` http://www.opengis.net/spec/ogcapi-features-3/1.0/conf/filter `
6565 - Features Filter: ` http://www.opengis.net/spec/ogcapi-features-3/1.0/conf/features-filter `
6666 - Item Search Filter: ` https://api.stacspec.org/v1.0.0/item-search#filter `
67+ - Collection Search Filter: ` https://api.stacspec.org/v1.0.0/collection-search#filter `
6768 - CQL2 Text: ` http://www.opengis.net/spec/cql2/1.0/conf/cql2-text `
6869 - CQL2 JSON: ` http://www.opengis.net/spec/cql2/1.0/conf/cql2-json `
6970 - Basic CQL2: ` http://www.opengis.net/spec/cql2/1.0/conf/basic-cql2 `
7879 - Property-Property Comparisons: ` http://www.opengis.net/spec/cql2/1.0/conf/property-property `
7980 - Functions: ` http://www.opengis.net/spec/cql2/1.0/conf/functions `
8081 - Arithmetic Expressions: ` http://www.opengis.net/spec/cql2/1.0/conf/arithmetic `
81- - ** Scope:** STAC API - Features, STAC API - Item Search
82+ - ** Scope:** STAC API - Features, STAC API - Item Search, STAC API - Collection Search
8283- ** [ Extension Maturity Classification] ( https://github.com/radiantearth/stac-api-spec/tree/main/README.md#maturity-classification ) :** Candidate
8384- ** Dependencies:**
84- - [ STAC API - Item Search] ( https://github.com/radiantearth/stac-api-spec/tree/v1.0.0/item-search )
8585 - [ STAC API - Features] ( https://github.com/radiantearth/stac-api-spec/tree/v1.0.0/ogcapi-features )
86+ - [ STAC API - Item Search] ( https://github.com/radiantearth/stac-api-spec/tree/v1.0.0/item-search )
87+ - [ STAC API - Collection Search] ( github.com/stac-api-extensions/collection-search )
8688- ** Owner** : @philvarner
8789
88- The Filter extension provides an expressive mechanism for searching based on Item attributes.
90+ The Filter extension provides an expressive mechanism for searching based on Item and Collection attributes,
91+ depending on the conformance class implemented.
8992
9093This extension references behavior defined in the
9194[ OGC API - Features - Part 3: Filtering Version 1.0] ( https://docs.ogc.org/is/19-079r2/19-079r2.html )
@@ -112,7 +115,7 @@ Cassandra database, or the OASIS Contextual Query Language.
112115
113116## Limitations of Item Search
114117
115- OAFeat defines a limited set of filtering capabilities. Filtering can only be done over a single collection and
118+ OAFeat defines a limited set of filtering capabilities for Items. For Items, filtering can only be done over a single collection and
116119with only a single ` bbox ` (rectangular spatial filter) parameter and a single datetime (instant or interval) parameter.
117120
118121The STAC Item Search specification extends the functionality of OAFeat in a few key ways:
@@ -128,7 +131,7 @@ multiple spatial or temporal filters.
128131
129132## Filter Expressiveness
130133
131- This extension expands the capabilities of Item Search and the OAFeat Items resource with
134+ This extension expands the capabilities of Item Search, Collection Search and the OAFeat Items resource with
132135[ Common Query Language (CQL2)] ( https://docs.ogc.org/is/21-065r2/21-065r2.html )
133136by providing an expressive query language to construct more complex filter predicates using operators that are similar to
134137those provided by SQL. This extension also supports the Queryables mechanism that allows discovery of what Item fields can be used in
@@ -142,6 +145,9 @@ CQL2 enables more expressive queries than supported by STAC API Item Search. The
142145- Items whose ` geometry ` values intersect one Polygon, but do not intersect another one, using AND, NOT, and
143146 S_INTERSECTS
144147
148+ For Collection Search, no filtering capabilities are present by default. As such this extension formally allows to formulate
149+ filters for Collections in an expressive way.
150+
145151## Conformance Classes
146152
147153The OAFeat Part 3 - Filter and CQL2 specifications define several conformance classes that allow implementers
@@ -156,7 +162,10 @@ Basic Spatial Functions with additional Spatial Literals class.
156162The STAC API Filter Extension reuses the definitions and conformance classes in OAFeat CQL,
157163adding only the * Item Search Filter* conformance class
158164(` https://api.stacspec.org/v1.0.0/item-search#filter ` ) to bind
159- the Filter behavior to the Item Search endpoint.
165+ the Filter behavior to the Item Search endpoint
166+ and the * Collection Search Filter* conformance class
167+ (` https://api.stacspec.org/v1.0.0/collection-search#filter ` ) to bind
168+ the Filter behavior to the Collection endpoint.
160169
161170The implementation ** must** support these conformance classes:
162171
@@ -166,15 +175,17 @@ The implementation **must** support these conformance classes:
166175 the query language used for the ` filter ` parameter defined by Filter. This includes logical operators (` AND ` , ` OR ` , ` NOT ` ),
167176 comparison operators (` = ` , ` <> ` , ` < ` , ` <= ` , ` > ` , ` >= ` ), and ` IS NULL ` . The comparison operators are allowed against
168177 string, numeric, boolean, date, and datetime types.
169- - Item Search Filter (` https://api.stacspec.org/v1.0.0/item-search#filter ` ) binds the Filter and
178+ - For Item Search only : Item Search Filter (` https://api.stacspec.org/v1.0.0/item-search#filter ` ) binds the Filter and
170179 Basic CQL2 conformance classes to apply to the Item Search endpoint (` /search ` ). This class is the correlate of the OAFeat CQL2 Features
171180 Filter class that binds Filter and Basic CQL2 to the Features resource (` /collections/{cid}/items ` ).
181+ - For Collection Search only: Collection Search Filter (` https://api.stacspec.org/v1.0.0/collection-search#filter ` ) binds the Filter and
182+ Basic CQL2 conformance classes to apply to the Collection endpoint (` /collection ` ).
172183
173184The implementation ** must** support at least one of the "CQL2 Text" or "CQL2 JSON" conformance classes that
174185define the CQL2 format used in the filter parameter:
175186
176- - CQL2 Text (` http://www.opengis.net/spec/cql2/1.0/conf/cql2-text ` ) defines that the CQL2 Text format is supported by Item Search
177- - CQL2 JSON (` http://www.opengis.net/spec/cql2/1.0/conf/cql2-json ` ) defines that the CQL2 JSON format is supported by Item Search
187+ - CQL2 Text (` http://www.opengis.net/spec/cql2/1.0/conf/cql2-text ` )
188+ - CQL2 JSON (` http://www.opengis.net/spec/cql2/1.0/conf/cql2-json ` )
178189
179190If both are advertised as being supported, it is only required that both be supported for GET query parameters, and that
180191only that CQL2 JSON be supported for POST JSON requests. It is recommended that clients use CQL2 Text in GET requests and
0 commit comments