Releases: appbaseio/reactivesearch-api
Releases · appbaseio/reactivesearch-api
8.24.2
8.24.1
Changes
- feat(vector search): inherit value for applying vector search when
vectorDataField
is specified butvalue
orqueryVector
isn't set in the component. This is a common scenario with ReactiveSearch UI kit where SearchBox (for suggestions or as input for kNN searching) and ReactiveList (vector search) are used in tandem. - fix (suggestions): payload parsing where object is received
{
"query": [
{
"id": "term",
"type": "term",
"dataField": "tags.keyword",
"value": "Fashion",
"execute": false
},
{
"id": "one-line-search",
"type": "search",
"dataField": "one_liner",
"value": "dresses",
"execute": false
},
{
"id": "search",
"vectorDataField": "vector_data", // since no value or queryVector is provided, will get embedding for dresses and apply kNN search against vector_data field. Requires configuration of AI preferences for this to work
"includeFields": [
"name",
"one_liner",
"tags"
],
"react": {
"and": [
"term",
"one-line-search"
]
}
}
],
"settings": {
"useCache": false
}
}
8.24.0
Enhancements
- Adds support for approximate KNN (ANN) for Elasticsearch and OpenSearch in ReactiveSearch API. The same search endpoint allows faceting and text filtering alongside kNN vector search. Note: For OpenSearch, ANN requires
lucene
orfaiss
engines for use with faceting and text filtering. - When AI preferences are configured, setting
queryVector
in the API is optional
Example with ReactiveSearch API:
{
"query": [
{
"id": "term",
"type": "term",
"dataField": "tags.keyword",
"value": "Fashion",
"execute": false
},
{
"id": "one-line-search",
"type": "search",
"dataField": "one_liner",
"value": "dresses",
"execute": false
},
{
"id": "search",
"vectorDataField": "vector_data", // instead of "dataField" to indicate kNN search type
"includeFields": [
"name",
"one_liner",
"tags"
],
"react": {
"and": [
"term",
"one-line-search"
]
},
"value": "personalise"
}
],
"settings": {
"useCache": false
}
}
Using KNN when AI preferences are configured is as simple as setting vectorDataField
instead of dataField
. ReactiveSearch uses the AI preferences (embedding model configured, currently supports OpenAI) to generate a query vector from the user passed value. If AI preferences are not configured, queryVector
is expected to be passed alongside.
Chore
- Updates to Go 1.23.5 (latest current version)
- Removes use of Sentry for remote error tracking
8.23.2
Fixes
- Auth headers handling to strip RS auth when querying ES endpoints
8.23.1
Fixes
- Updates synonyms index to avoid conflict with Elasticsearch's internal index.
8.23.0
Release Notes
Enhancements
- Cache Performance Improvement: The cache now uses a SHA-256 fixed-length key for hashing URL and request body. This reduces conversion overhead, leading to improved latency when caching with Redis and Ristretto.
- Golang Update: The server image has been updated to use Golang 1.23.1, ensuring compatibility with the latest features and security patches.
Fixes
- Disk: Increased the frequency of pipeline, analytics, and logs rollover to enhance disk management and performance.
- Cache Handling: Resolved an issue where invalid Redis cache entries were mishandled, preventing multiple initialization of Redis cache during misconfiguration.
- Analytics: Fixed a marshaling error in analytics mappings that occurred during rollover.
- Cache Hit/Miss Tracking: Added cache hit/miss information in the stage change context and optimized the
applycache
function for better performance.
8.22.8
Fixes
- Pipelines: Adds support for new input variable
setResponseToKV
forHTTPRequest
andElasticsearchQuery
stages
8.22.7
Fixes
- Pipeline Environment Variable for defining a default HTTP URL. This can be used by a stage as a default URL to call.
8.22.6
Improvements
- Fixes various possible errors while execution of pipeline stages
- Other QoL improvements