Skip to content

Add Redis Search API surface (FT.CREATE, FT.DROPINDEX, FT.SEARCH)#3332

Draft
viktoriya-kutsarova wants to merge 1 commit intospring-projects:mainfrom
viktoriya-kutsarova:search-api-surface
Draft

Add Redis Search API surface (FT.CREATE, FT.DROPINDEX, FT.SEARCH)#3332
viktoriya-kutsarova wants to merge 1 commit intospring-projects:mainfrom
viktoriya-kutsarova:search-api-surface

Conversation

@viktoriya-kutsarova
Copy link
Contributor

@viktoriya-kutsarova viktoriya-kutsarova commented Mar 13, 2026

Add Redis Search API surface for FT.CREATE, FT.DROPINDEX, and FT.SEARCH

This PR introduces the public API types for Redis Search commands without the driver-specific implementations.

API Interface

RedisSearchCommands defines the core operations:

  • createIndex(name, schema) / createIndex(name, schema, definition) - create an index with optional configuration
  • dropIndex(name) / dropIndex(name, options) - drop an index with optional document deletion
  • search(index, query) / search(index, query, options) - execute a search query

Index Definition

  • IndexDefinition - index-level options (data type, prefixes, language, stopwords, etc.)
  • IndexDataType - HASH or JSON
  • Language - supported stemming languages
  • DropIndexOptions - controls whether to delete documents on drop

Schema & Field Types

  • Schema - container for field definitions
  • SchemaField - abstract base with factory methods (text(), tag(), numeric(), geo())
  • TextField - full-text with stemming, phonetics, weight
  • TagField - exact-match with separator and case sensitivity
  • NumericField / GeoField - range queries and sorting

Search

  • SearchQuery - query string wrapper
  • SearchOptions - LIMIT, SORTBY, RETURN, WITHSCORES, VERBATIM, etc.
  • SearchResult / SearchHit / SearchDocument - result types

  • You have read the Spring Data contribution guidelines.
  • You use the code formatters provided here and have them applied to your changes. Don’t submit any formatting related changes.
  • You submit test cases (unit or integration tests) that back your changes.
  • You added yourself as author in the headers of the classes you touched. Amend the date range in the Apache license header if needed. For new types, add the license header (copy from another file and set the current year only).

Signed-off-by: viktoriya.kutsarova <viktoriya.kutsarova@redis.com>
@spring-projects-issues spring-projects-issues added the status: waiting-for-triage An issue we've not yet triaged label Mar 13, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

status: waiting-for-triage An issue we've not yet triaged

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants