GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — feat: Adding vector_search parameter to fields by franciscojavierarceo · Pull Request #4855 · feast-dev/feast

Conversation

@franciscojavierarceo

@franciscojavierarceo franciscojavierarceo commented Dec 17, 2024 •
edited
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown
Member

What this PR does / why we need it:

This PR adds vector_index and vector_search_metric to the Feature protobuf object (which maps to the Field class) that will be used to declare field-level index behavior for online retrieval. I.e., during ingestion we can declare which fields are indexed as vectors for approximate nearest neighbor search.

  • Update protobuf objects (and impacted protobuf objects)
  • Update class
  • Update Sphinx documentation

Which issue(s) this PR fixes:

N/A

Misc

N/A

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
franciscojavierarceo added 4 commits December 17, 2024 16:32
@franciscojavierarceo
feat: Adding vector_search parameter to fields
16dcafb
Signed-off-by: Francisco Javier Arceo <[email protected]>
@franciscojavierarceo
updated field to handle linter and updated sphinx docs
532d5ef
Signed-off-by: Francisco Javier Arceo <[email protected]>
@franciscojavierarceo
Have to remove the equality test for the new fields...for now we're g…
1035cd4
…oing to ignore them so it is backwards compatible

Signed-off-by: Francisco Javier Arceo <[email protected]>
@franciscojavierarceo
linter
15939d8
Signed-off-by: Francisco Javier Arceo <[email protected]>
@franciscojavierarceo franciscojavierarceo added the ok-to-test label Dec 17, 2024
@franciscojavierarceo
franciscojavierarceo marked this pull request as ready for review December 18, 2024 02:03
@franciscojavierarceo
franciscojavierarceo requested a review from a team as a code owner December 18, 2024 02:03
@franciscojavierarceo
franciscojavierarceo requested review from dmartinol, haoxu0, lokeshrangineni, shuchu and tchughesiv December 18, 2024 02:04
dmartinol
dmartinol reviewed Dec 18, 2024
View reviewed changes

@dmartinol dmartinol left a comment

Copy link
Copy Markdown
Contributor

There was a problem hiding this comment.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

all changes in the sdk/python/feast/protos/feast/core/ folder seem due to some missed compilation of protos in a previous commit, and not related to your actual change, right?
apart of that, lgtm

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
@franciscojavierarceo

franciscojavierarceo commented Dec 18, 2024

Copy link
Copy Markdown
Member Author

Yeah it looks like it. I'll make an action to run some checks to verify it from now on.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@franciscojavierarceo

franciscojavierarceo commented Dec 18, 2024

Copy link
Copy Markdown
Member Author

By the way @dmartinol can you approve?

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

dmartinol
dmartinol approved these changes Dec 18, 2024
View reviewed changes
@franciscojavierarceo
franciscojavierarceo merged commit 739eaa7 into master Dec 18, 2024
franciscojavierarceo pushed a commit that referenced this pull request Jan 20, 2025
@feast-ci-bot
chore(release): release 0.43.0
5a7e6f8
# [0.43.0](v0.42.0...v0.43.0) (2025-01-20)

### Bug Fixes

* Add k8s module to feature-server image ([#4839](#4839)) ([f565565](f565565))
* Adding input to workflow ([e3e8c97](e3e8c97))
* Change image push to use --all-tags option ([#4926](#4926)) ([02458fd](02458fd))
* Fix integration build/push for images ([#4923](#4923)) ([695e49b](695e49b))
* Fix integration operator push ([#4924](#4924)) ([13c7267](13c7267))
* Fix release.yml ([#4845](#4845)) ([b4768a8](b4768a8))
* Fixing some of the warnings with the github actions ([#4763](#4763)) ([1119439](1119439))
* Improve status.applied updates & add offline pvc unit test ([#4871](#4871)) ([3f49517](3f49517))
* Made fixes to Go Operator DB persistence ([#4830](#4830)) ([cdc0753](cdc0753))
* Make transformation_service_endpoint configuration optional ([#4880](#4880)) ([c62377b](c62377b))
* Move pre-release image builds to quay.io, retire gcr.io pushes ([#4922](#4922)) ([40b975b](40b975b))
* Performance regression in /get-online-features ([#4892](#4892)) ([0db56a2](0db56a2))
* Refactor Operator to deploy all feast services to the same Deployment/Pod ([#4863](#4863)) ([88854dd](88854dd))
* Remove unnecessary google cloud steps & upgrade docker action versions ([#4925](#4925)) ([32aaf9a](32aaf9a))
* Remove verifyClient TLS offlineStore option from the Operator ([#4847](#4847)) ([79fa247](79fa247))
* Resolving syntax error while querying a feature view with column name starting with a number and BigQuery as data source ([#4908](#4908)) ([d3495a0](d3495a0))
* Updated python-helm-demo example to use MinIO instead of GS ([#4691](#4691)) ([31afd99](31afd99))

### Features

* Add date field support to spark ([#4913](#4913)) ([a8aeb79](a8aeb79))
* Add date support when converting from python to feast types ([#4918](#4918)) ([bd9f071](bd9f071))
* Add duckdb extra to multicloud release image ([#4862](#4862)) ([b539eba](b539eba))
* Add milvus package to release image & option to Operator ([#4870](#4870)) ([ef724b6](ef724b6))
* Add Milvus Vector Database Implementation ([#4751](#4751)) ([22c7b58](22c7b58))
* Add online/offline replica support ([#4812](#4812)) ([b97da6c](b97da6c))
* Added pvc accessModes support ([#4851](#4851)) ([a73514c](a73514c))
* Adding EnvFrom support for the OptionalConfigs type to the Go Operator ([#4909](#4909)) ([e01e510](e01e510))
* Adding Feature Server to components docs ([#4868](#4868)) ([f95e54b](f95e54b))
* Adding features field to retrieve_online_features to return mor… ([#4869](#4869)) ([7df287e](7df287e))
* Adding packages for Milvus Online Store ([#4854](#4854)) ([49171bd](49171bd))
* Adding vector_search parameter to fields ([#4855](#4855)) ([739eaa7](739eaa7))
* Feast Operator support log level configuration for services ([#4808](#4808)) ([19424bc](19424bc))
* Go Operator - Parsing the output to go structs ([#4832](#4832)) ([732865f](732865f))
* Implement `date_partition_column` for `SparkSource` ([#4844](#4844)) ([c5ffa03](c5ffa03))
* Loading the CA trusted store certificate into Feast to verify the public certificate. ([#4852](#4852)) ([132ce2a](132ce2a))
* Operator E2E test to validate FeatureStore custom resource using remote registry ([#4822](#4822)) ([d558ef7](d558ef7))
* Operator improvements ([#4928](#4928)) ([7a1f4dd](7a1f4dd))
* Removing the tls_verify_client flag from feast cli for offline server. ([#4842](#4842)) ([8320e23](8320e23))
* Separating the RBAC and Remote related integration tests. ([#4905](#4905)) ([76e1e21](76e1e21))
* Snyk vulnerability issues fix. ([#4867](#4867)) ([dbc9207](dbc9207)), closes [#6](#6) [#3](#3) [#4](#4)
* Use ASOF JOIN in Snowflake offline store query ([#4850](#4850)) ([8f591a2](8f591a2))

### Reverts

* Revert "chore: Add Milvus to pr_integration_tests.yml" ([#4900](#4900)) ([07958f7](07958f7)), closes [#4891](#4891)
tmihalac pushed a commit to opendatahub-io/feast that referenced this pull request Jan 21, 2025
@feast-ci-bot @tmihalac
chore(release): release 0.43.0
520cf53
# [0.43.0](feast-dev/feast@v0.42.0...v0.43.0) (2025-01-20)

### Bug Fixes

* Add k8s module to feature-server image ([feast-dev#4839](feast-dev#4839)) ([f565565](feast-dev@f565565))
* Adding input to workflow ([e3e8c97](feast-dev@e3e8c97))
* Change image push to use --all-tags option ([feast-dev#4926](feast-dev#4926)) ([02458fd](feast-dev@02458fd))
* Fix integration build/push for images ([feast-dev#4923](feast-dev#4923)) ([695e49b](feast-dev@695e49b))
* Fix integration operator push ([feast-dev#4924](feast-dev#4924)) ([13c7267](feast-dev@13c7267))
* Fix release.yml ([feast-dev#4845](feast-dev#4845)) ([b4768a8](feast-dev@b4768a8))
* Fixing some of the warnings with the github actions ([feast-dev#4763](feast-dev#4763)) ([1119439](feast-dev@1119439))
* Improve status.applied updates & add offline pvc unit test ([feast-dev#4871](feast-dev#4871)) ([3f49517](feast-dev@3f49517))
* Made fixes to Go Operator DB persistence ([feast-dev#4830](feast-dev#4830)) ([cdc0753](feast-dev@cdc0753))
* Make transformation_service_endpoint configuration optional ([feast-dev#4880](feast-dev#4880)) ([c62377b](feast-dev@c62377b))
* Move pre-release image builds to quay.io, retire gcr.io pushes ([feast-dev#4922](feast-dev#4922)) ([40b975b](feast-dev@40b975b))
* Performance regression in /get-online-features ([feast-dev#4892](feast-dev#4892)) ([0db56a2](feast-dev@0db56a2))
* Refactor Operator to deploy all feast services to the same Deployment/Pod ([feast-dev#4863](feast-dev#4863)) ([88854dd](feast-dev@88854dd))
* Remove unnecessary google cloud steps & upgrade docker action versions ([feast-dev#4925](feast-dev#4925)) ([32aaf9a](feast-dev@32aaf9a))
* Remove verifyClient TLS offlineStore option from the Operator ([feast-dev#4847](feast-dev#4847)) ([79fa247](feast-dev@79fa247))
* Resolving syntax error while querying a feature view with column name starting with a number and BigQuery as data source ([feast-dev#4908](feast-dev#4908)) ([d3495a0](feast-dev@d3495a0))
* Updated python-helm-demo example to use MinIO instead of GS ([feast-dev#4691](feast-dev#4691)) ([31afd99](feast-dev@31afd99))

### Features

* Add date field support to spark ([feast-dev#4913](feast-dev#4913)) ([a8aeb79](feast-dev@a8aeb79))
* Add date support when converting from python to feast types ([feast-dev#4918](feast-dev#4918)) ([bd9f071](feast-dev@bd9f071))
* Add duckdb extra to multicloud release image ([feast-dev#4862](feast-dev#4862)) ([b539eba](feast-dev@b539eba))
* Add milvus package to release image & option to Operator ([feast-dev#4870](feast-dev#4870)) ([ef724b6](feast-dev@ef724b6))
* Add Milvus Vector Database Implementation ([feast-dev#4751](feast-dev#4751)) ([22c7b58](feast-dev@22c7b58))
* Add online/offline replica support ([feast-dev#4812](feast-dev#4812)) ([b97da6c](feast-dev@b97da6c))
* Added pvc accessModes support ([feast-dev#4851](feast-dev#4851)) ([a73514c](feast-dev@a73514c))
* Adding EnvFrom support for the OptionalConfigs type to the Go Operator ([feast-dev#4909](feast-dev#4909)) ([e01e510](feast-dev@e01e510))
* Adding Feature Server to components docs ([feast-dev#4868](feast-dev#4868)) ([f95e54b](feast-dev@f95e54b))
* Adding features field to retrieve_online_features to return mor… ([feast-dev#4869](feast-dev#4869)) ([7df287e](feast-dev@7df287e))
* Adding packages for Milvus Online Store ([feast-dev#4854](feast-dev#4854)) ([49171bd](feast-dev@49171bd))
* Adding vector_search parameter to fields ([feast-dev#4855](feast-dev#4855)) ([739eaa7](feast-dev@739eaa7))
* Feast Operator support log level configuration for services ([feast-dev#4808](feast-dev#4808)) ([19424bc](feast-dev@19424bc))
* Go Operator - Parsing the output to go structs ([feast-dev#4832](feast-dev#4832)) ([732865f](feast-dev@732865f))
* Implement `date_partition_column` for `SparkSource` ([feast-dev#4844](feast-dev#4844)) ([c5ffa03](feast-dev@c5ffa03))
* Loading the CA trusted store certificate into Feast to verify the public certificate. ([feast-dev#4852](feast-dev#4852)) ([132ce2a](feast-dev@132ce2a))
* Operator E2E test to validate FeatureStore custom resource using remote registry ([feast-dev#4822](feast-dev#4822)) ([d558ef7](feast-dev@d558ef7))
* Operator improvements ([feast-dev#4928](feast-dev#4928)) ([7a1f4dd](feast-dev@7a1f4dd))
* Removing the tls_verify_client flag from feast cli for offline server. ([feast-dev#4842](feast-dev#4842)) ([8320e23](feast-dev@8320e23))
* Separating the RBAC and Remote related integration tests. ([feast-dev#4905](feast-dev#4905)) ([76e1e21](feast-dev@76e1e21))
* Snyk vulnerability issues fix. ([feast-dev#4867](feast-dev#4867)) ([dbc9207](feast-dev@dbc9207)), closes [#6](feast-dev#6) [#3](feast-dev#3) [#4](feast-dev#4)
* Use ASOF JOIN in Snowflake offline store query ([feast-dev#4850](feast-dev#4850)) ([8f591a2](feast-dev@8f591a2))

### Reverts

* Revert "chore: Add Milvus to pr_integration_tests.yml" ([feast-dev#4900](feast-dev#4900)) ([07958f7](feast-dev@07958f7)), closes [feast-dev#4891](feast-dev#4891)
This was referenced Oct 3, 2026
fix: Include vector attributes in Field equality #6934
Merged
Vector length validation is unreachable from the batch path, skipped unless the vector is the first field, and off by default #6907
Closed
haoxu0 added a commit that referenced this pull request Oct 4, 2026
@haoxu0
fix: Include vector attributes in Field equality (#6934)
298c3f6
Re-enables the vector_index and vector_search_metric comparisons in
Field.__eq__, which have been commented out since #4855. Addresses item 5 of
#6907.

They were disabled deliberately, for backwards compatibility: an unset metric
deserializes as "" while the constructor default is None, so a Field never
compared equal to its own deserialized copy and every field lacking an explicit
metric would have shown as changed on every feast plan.

Fixing that asymmetry removes the reason for the exclusion. The normalization
goes in __init__ rather than from_proto, because from_proto is not the only
deserialization path: OnDemandFeatureView._parse_features_from_proto builds a
Field straight from a proto message. Normalizing only from_proto left the two
paths disagreeing, which surfaced as a projection for an aliased on-demand
feature view failing to apply, since the comparison is also what
BaseFeatureView.with_projection uses to check a projection's fields.

With both attributes compared, a change to vector_search_metric from COSINE to
L2, or flipping vector_index, is now visible to feast plan and apply. Previously
such a change altered retrieval semantics while producing no diff.

Verified no regressions by diffing failure names across the full unit suite
before and after: 41 pre-existing failures on both sides, none introduced.

Signed-off-by: hao-xu5 <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Reviewers

@dmartinol dmartinol dmartinol approved these changes
@tchughesiv tchughesiv Awaiting requested review from tchughesiv
@lokeshrangineni lokeshrangineni Awaiting requested review from lokeshrangineni
@shuchu shuchu Awaiting requested review from shuchu
@haoxu0 haoxu0 Awaiting requested review from haoxu0

Uh oh!

There was an error while loading. Please reload this page.

Assignees

No one assigned

Labels

ok-to-test

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

Uh oh!

There was an error while loading. Please reload this page.

2 participants

@franciscojavierarceo @dmartinol
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.