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>
9 lines
287 B
C#
9 lines
287 B
C#
#nullable enable
|
|
namespace ErsatzTV.Core.Api.Search;
|
|
|
|
/// <summary>
|
|
/// Distinct term values for a single text field in the search index, used to power the visual rule
|
|
/// builder's facet-value typeahead.
|
|
/// </summary>
|
|
public record SearchFieldValuesResponseModel(List<string> Values);
|