Skip to content

Conversation

benwtrent
Copy link
Member

Backports the following commits to 8.x:

This adds `maxSim` functions, specifically dotProduct and InvHamming.
Why these two you might ask? Well, they are the best approximations of
whats possible with Col* late interaction type models. Effectively, you
want a similarity metric where "greater == better". Regular `hamming`
isn't exactly that, but inverting that (just like our `element_type:
bit` index for dense_vectors), is a nice approximation with bit vectors
and multi-vector scoring.

Then, of course, dotProduct is another usage. We will allow dot-product
between like elements (bytes -> bytes, floats -> floats) and of course,
allow `floats -> bit`, where the stored `bit` elements are applied as a
"mask" over the float queries. This allows for some nice asymmetric
interactions.

This is all behind a feature flag, and I need to write a mountain of
docs in a separate PR.
@benwtrent benwtrent added :Search Relevance/Vectors Vector search >non-issue auto-merge-without-approval Automatically merge pull request when CI checks pass (NB doesn't wait for reviews!) backport Team:Search Relevance Meta label for the Search Relevance team in Elasticsearch labels Nov 20, 2024
@elasticsearchmachine elasticsearchmachine merged commit ad3903d into elastic:8.x Nov 20, 2024
15 checks passed
@benwtrent benwtrent deleted the backport/8.x/pr-116993 branch November 20, 2024 22:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

auto-merge-without-approval Automatically merge pull request when CI checks pass (NB doesn't wait for reviews!) backport >non-issue :Search Relevance/Vectors Vector search Team:Search Relevance Meta label for the Search Relevance team in Elasticsearch v8.18.0

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants