feat(434): distinct-values search endpoint (text fields, Lucene term enumeration)
Adds GET /api/v1/search/fields/{name}/values?q=&limit= — the backend slice of the
visual rule builder's facet-value typeahead (#434). Enumerates distinct Lucene term
values for a text field via MultiFields.GetTerms + TermsEnum, filtered by a
case-insensitive prefix, limit clamped to [1,50]. 404s when the field is absent from
SearchFieldCatalog or is not type "text". ElasticSearchIndex (the optional external
backend) throws NotSupportedException for this method — its text fields are analyzed,
not keyword-mapped, so a terms aggregation isn't safe to guess at without verifying
against a live cluster.
Regenerated OpenAPI trio (v1.json, v1.d.ts, endpoint-index.md).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -2,7 +2,7 @@
|
||||
|
||||
*Generated by `scripts/generate-endpoint-index.py` from `ErsatzTV/wwwroot/openapi/v1.json`. Do not edit by hand -- regenerated by `scripts/update-openapi.sh`.*
|
||||
|
||||
166 endpoints, 249 operations.
|
||||
167 endpoints, 250 operations.
|
||||
|
||||
## Artists
|
||||
|
||||
@@ -338,6 +338,7 @@
|
||||
| GET | `/api/v1/search/artists` | SearchArtists | Search artists by name |
|
||||
| GET | `/api/v1/search/collections` | SearchCollections | Search collections by name |
|
||||
| GET | `/api/v1/search/fields` | GetSearchFields | List the filterable fields for the visual rule builder |
|
||||
| GET | `/api/v1/search/fields/{name}/values` | GetSearchFieldValues | List distinct term values for a text search field |
|
||||
| GET | `/api/v1/search/multi-collections` | SearchMultiCollections | Search multi collections by name |
|
||||
| GET | `/api/v1/search/smart-collections` | SearchSmartCollections | Search smart collections by name |
|
||||
| GET | `/api/v1/search/television-seasons` | SearchTelevisionSeasons | Search television seasons by name |
|
||||
|
||||
Reference in New Issue
Block a user