René's URL Explorer Experiment


Title: feat: Add Vector Search support to MongoDBOnlineStore by caseyclements · Pull Request #6344 · feast-dev/feast · GitHub

Open Graph Title: feat: Add Vector Search support to MongoDBOnlineStore by caseyclements · Pull Request #6344 · feast-dev/feast

X Title: feat: Add Vector Search support to MongoDBOnlineStore by caseyclements · Pull Request #6344 · feast-dev/feast

Description: What this PR does / why we need it: Adds MongoDB Atlas Vector Search support to MongoDBOnlineStore, enabling similarity search over feature embeddings stored in MongoDB Atlas. Changes: MongoDBOnlineStoreConfig: Extends VectorStoreConfig to inherit vector_enabled and similarity fields. Adds vector_index_wait_timeout for controlling how long to wait for newly created Atlas Search indexes to become queryable. MongoDBOnlineStore.update(): When vector_enabled=True, automatically creates Atlas vector search indexes for any FeatureView fields that have vector_index=True. Ensures the underlying collection exists before index creation (required by Atlas). Drops vector indexes for removed feature views. MongoDBOnlineStore.retrieve_online_documents_v2(): Implements similarity search using the $vectorSearch aggregation stage. Returns results as (event_ts, entity_key_proto, feature_dict) tuples with a synthetic distance field containing the vector search score. Coerces query vectors to native Python floats for BSON compatibility. MongoDBAtlasOnlineStoreCreator: Test infrastructure using MongoDBAtlasLocalContainer from testcontainers-python to spin up mongodb/mongodb-atlas-local:8.0.4 for integration testing. Integration tests (test_mongodb_vector_search.py): Covers index lifecycle (create on update(), drop on teardown()), write + retrieve round-trip with known embeddings, and top_k limiting. Dependencies: Uses existing pymongo >= 4.13.0 Atlas Search index APIs (SearchIndexModel, create_search_index, list_search_indexes, drop_search_index). No change here. The integration tests require testcontainers.mongodb.MongoDBAtlasLocalContainer, which is, as of April 30th, available in testcontainers=4.15.0rc2. See testcontainers pull/873 Which issue(s) this PR fixes: Closes MongoDB ticket INTPYTHON-921 Checks I've made sure the tests are passing. My commits are signed off (git commit -s) My PR title follows conventional commits format Testing Strategy Unit tests Integration tests Manual tests Testing is not required for this change Misc The integration tests use the mongodb/mongodb-atlas-local:8.0.4 Docker image via testcontainers. A configurable INDEX_WAIT (default 5s) accounts for Atlas Search index eventual consistency after writes. Verified that existing unit tests (676 passed) and MongoDB universal integration tests (75 passed) are unaffected by these changes.

Open Graph Description: What this PR does / why we need it: Adds MongoDB Atlas Vector Search support to MongoDBOnlineStore, enabling similarity search over feature embeddings stored in MongoDB Atlas. Changes: MongoDBOnl...

X Description: What this PR does / why we need it: Adds MongoDB Atlas Vector Search support to MongoDBOnlineStore, enabling similarity search over feature embeddings stored in MongoDB Atlas. Changes: MongoDBOnl...

Opengraph URL: https://github.com/feast-dev/feast/pull/6344

X: @github

direct link

Domain: github.com

route-pattern/:user_id/:repository/pull/:id/files(.:format)
route-controllerpull_requests
route-actionfiles
fetch-noncev2:051b73c3-f1f9-5116-7f9d-eaecf508c416
current-catalog-service-hashae870bc5e265a340912cde392f23dad3671a0a881730ffdadd82f2f57d81641b
request-id9E88:390CE:12C9B56:19F608C:6A4DE63D
html-safe-nonce372b27525c809a26089b6f57a4b1e221ee8ca8efd654073e4bd59444ef92ee63
visitor-payloadeyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiI5RTg4OjM5MENFOjEyQzlCNTY6MTlGNjA4Qzo2QTRERTYzRCIsInZpc2l0b3JfaWQiOiIzMzI0MDg1ODkwMzY4NTI5OTgxIiwicmVnaW9uX2VkZ2UiOiJpYWQiLCJyZWdpb25fcmVuZGVyIjoiaWFkIn0=
visitor-hmacc80b4cc31ea58a1f8a3506176c3e2a6cd00a3131ce6f55e0e7c409df89538fab
hovercard-subject-tagpull_request:3597428404
github-keyboard-shortcutsrepository,pull-request-list,pull-request-conversation,pull-request-files-changed,copilot
google-site-verificationApib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I
octolytics-urlhttps://collector.github.com/github/collect
analytics-location///pull_requests/show/files
fb:app_id1401488693436528
apple-itunes-appapp-id=1477376905, app-argument=https://github.com/feast-dev/feast/pull/6344/files
twitter:imagehttps://avatars.githubusercontent.com/u/737181?s=400&v=4
twitter:cardsummary_large_image
og:imagehttps://avatars.githubusercontent.com/u/737181?s=400&v=4
og:image:altWhat this PR does / why we need it: Adds MongoDB Atlas Vector Search support to MongoDBOnlineStore, enabling similarity search over feature embeddings stored in MongoDB Atlas. Changes: MongoDBOnl...
og:site_nameGitHub
og:typeobject
hostnamegithub.com
expected-hostnamegithub.com
None06b8a6144231bf3a234f1c2e9993861e07ce98a905912b114aa386c2d7e84b33
turbo-cache-controlno-preview
diff-viewunified
go-importgithub.com/feast-dev/feast git https://github.com/feast-dev/feast.git
octolytics-dimension-user_id57027613
octolytics-dimension-user_loginfeast-dev
octolytics-dimension-repository_id161133770
octolytics-dimension-repository_nwofeast-dev/feast
octolytics-dimension-repository_publictrue
octolytics-dimension-repository_is_forkfalse
octolytics-dimension-repository_network_root_id161133770
octolytics-dimension-repository_network_root_nwofeast-dev/feast
turbo-body-classeslogged-out env-production page-responsive full-width
disable-turbotrue
browser-stats-urlhttps://api.github.com/_private/browser/stats
browser-errors-urlhttps://api.github.com/_private/browser/errors
release1d344bdb7547fe6bca17a59bb2b8aac3dc9532a0
ui-targetfull
theme-color#1e2327
color-schemelight dark

Links:

Skip to contenthttps://github.com/feast-dev/feast/pull/6344/files#start-of-content
https://github.com/
Sign in https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Ffeast-dev%2Ffeast%2Fpull%2F6344%2Ffiles
GitHub CopilotWrite better code with AIhttps://github.com/features/copilot
GitHub Copilot appDirect agents from issue to mergehttps://github.com/features/ai/github-app
MCP RegistryNewIntegrate external toolshttps://github.com/mcp
ActionsAutomate any workflowhttps://github.com/features/actions
CodespacesInstant dev environmentshttps://github.com/features/codespaces
IssuesPlan and track workhttps://github.com/features/issues
Code ReviewManage code changeshttps://github.com/features/code-review
GitHub Advanced SecurityFind and fix vulnerabilitieshttps://github.com/security/advanced-security
Code securitySecure your code as you buildhttps://github.com/security/advanced-security/code-security
Secret protectionStop leaks before they starthttps://github.com/security/advanced-security/secret-protection
Why GitHubhttps://github.com/why-github
Documentationhttps://docs.github.com
Bloghttps://github.blog
Changeloghttps://github.blog/changelog
Marketplacehttps://github.com/marketplace
View all featureshttps://github.com/features
Enterpriseshttps://github.com/enterprise
Small and medium teamshttps://github.com/team
Startupshttps://github.com/enterprise/startups
Nonprofitshttps://github.com/solutions/industry/nonprofits
App Modernizationhttps://github.com/solutions/use-case/app-modernization
DevSecOpshttps://github.com/solutions/use-case/devsecops
DevOpshttps://github.com/solutions/use-case/devops
CI/CDhttps://github.com/solutions/use-case/ci-cd
View all use caseshttps://github.com/solutions/use-case
Healthcarehttps://github.com/solutions/industry/healthcare
Financial serviceshttps://github.com/solutions/industry/financial-services
Manufacturinghttps://github.com/solutions/industry/manufacturing
Governmenthttps://github.com/solutions/industry/government
View all industrieshttps://github.com/solutions/industry
View all solutionshttps://github.com/solutions
AIhttps://github.com/resources/articles?topic=ai
Software Developmenthttps://github.com/resources/articles?topic=software-development
DevOpshttps://github.com/resources/articles?topic=devops
Securityhttps://github.com/resources/articles?topic=security
View all topicshttps://github.com/resources/articles
Customer storieshttps://github.com/customer-stories
Events & webinarshttps://github.com/resources/events
Ebooks & reportshttps://github.com/resources/whitepapers
Business insightshttps://github.com/solutions/executive-insights
GitHub Skillshttps://skills.github.com
Documentationhttps://docs.github.com
Customer supporthttps://support.github.com
Community forumhttps://github.com/orgs/community/discussions
Trust centerhttps://github.com/trust-center
Partnershttps://github.com/partners
View all resourceshttps://github.com/resources
GitHub SponsorsFund open source developershttps://github.com/sponsors
Security Labhttps://securitylab.github.com
Maintainer Communityhttps://maintainers.github.com
Acceleratorhttps://github.com/accelerator
GitHub Starshttps://stars.github.com
Archive Programhttps://archiveprogram.github.com
Topicshttps://github.com/topics
Trendinghttps://github.com/trending
Collectionshttps://github.com/collections
Enterprise platformAI-powered developer platformhttps://github.com/enterprise
GitHub Advanced SecurityEnterprise-grade security featureshttps://github.com/security/advanced-security
Copilot for BusinessEnterprise-grade AI featureshttps://github.com/features/copilot/copilot-business
Premium SupportEnterprise-grade 24/7 supporthttps://github.com/premium-support
Pricinghttps://github.com/pricing
Search syntax tipshttps://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax
documentationhttps://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax
Sign in https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Ffeast-dev%2Ffeast%2Fpull%2F6344%2Ffiles
Sign up https://github.com/signup?ref_cta=Sign+up&ref_loc=header+logged+out&ref_page=%2F%3Cuser-name%3E%2F%3Crepo-name%3E%2Fpull_requests%2Fshow%2Ffiles&source=header-repo&source_repo=feast-dev%2Ffeast
Reloadhttps://github.com/feast-dev/feast/pull/6344/files
Reloadhttps://github.com/feast-dev/feast/pull/6344/files
Reloadhttps://github.com/feast-dev/feast/pull/6344/files
Please reload this pagehttps://github.com/feast-dev/feast/pull/6344/files
feast-dev https://github.com/feast-dev
feasthttps://github.com/feast-dev/feast
Notifications https://github.com/login?return_to=%2Ffeast-dev%2Ffeast
Fork 1.4k https://github.com/login?return_to=%2Ffeast-dev%2Ffeast
Star 7.1k https://github.com/login?return_to=%2Ffeast-dev%2Ffeast
Code https://github.com/feast-dev/feast
Issues 212 https://github.com/feast-dev/feast/issues
Pull requests 171 https://github.com/feast-dev/feast/pulls
Discussions https://github.com/feast-dev/feast/discussions
Actions https://github.com/feast-dev/feast/actions
Security and quality 1 https://github.com/feast-dev/feast/security
Insights https://github.com/feast-dev/feast/pulse
Code https://github.com/feast-dev/feast
Issues https://github.com/feast-dev/feast/issues
Pull requests https://github.com/feast-dev/feast/pulls
Discussions https://github.com/feast-dev/feast/discussions
Actions https://github.com/feast-dev/feast/actions
Security and quality https://github.com/feast-dev/feast/security
Insights https://github.com/feast-dev/feast/pulse
Sign up for GitHub https://github.com/signup?return_to=%2Ffeast-dev%2Ffeast%2Fissues%2Fnew%2Fchoose
terms of servicehttps://docs.github.com/terms
privacy statementhttps://docs.github.com/privacy
Sign inhttps://github.com/login?return_to=%2Ffeast-dev%2Ffeast%2Fissues%2Fnew%2Fchoose
ntkatholehttps://github.com/ntkathole
feast-dev:masterhttps://github.com/feast-dev/feast/tree/master
caseyclements:INTPYTHON-921https://github.com/caseyclements/feast/tree/INTPYTHON-921
Conversation 15 https://github.com/feast-dev/feast/pull/6344
Commits 11 https://github.com/feast-dev/feast/pull/6344/commits
Checks 26 https://github.com/feast-dev/feast/pull/6344/checks
Files changed https://github.com/feast-dev/feast/pull/6344/files
Please reload this pagehttps://github.com/feast-dev/feast/pull/6344/files
feat: Add Vector Search support to MongoDBOnlineStore https://github.com/feast-dev/feast/pull/6344/files#top
Show all changes 11 commits https://github.com/feast-dev/feast/pull/6344/files
8c3fdf0 feat: add MongoDB Atlas Vector Search support to MongoDBOnlineStore caseyclements Apr 27, 2026 https://github.com/feast-dev/feast/pull/6344/commits/8c3fdf0a45581669971f7240c965cd59408c2b6b
8482920 fix: ensure collection exists before vector index creation, add INDEX… caseyclements Apr 27, 2026 https://github.com/feast-dev/feast/pull/6344/commits/8482920287d6728d4e1b6ef46c3e6922f68e2ef1
e69cdb4 fix: use float32 in test data and coerce query vector to native floats caseyclements Apr 28, 2026 https://github.com/feast-dev/feast/pull/6344/commits/e69cdb41b48b887a8ddca15266a3b40ee895814b
88f6827 test: add vector search validation unit tests and idempotency integra… caseyclements Apr 28, 2026 https://github.com/feast-dev/feast/pull/6344/commits/88f682745a68fe013a3eb7e467ab5e9392d05f55
5ddb3e2 feat: upgrade testcontainers to 4.15.0rc2 and use MongoDBAtlasLocalCo… caseyclements Apr 30, 2026 https://github.com/feast-dev/feast/pull/6344/commits/5ddb3e2857783228da56fb2b08db2d51be90d189
c0ab443 fix: check bool before int in _python_value_to_proto caseyclements Apr 30, 2026 https://github.com/feast-dev/feast/pull/6344/commits/c0ab443272f7f40b9fa9f9a5ef4092366f7f3278
4becf7e docs: note composite vector index as future optimization caseyclements Apr 30, 2026 https://github.com/feast-dev/feast/pull/6344/commits/4becf7e6c2918c2e253826e030e565a5f451ff0e
81aea6e chore: regenerate requirement lockfiles caseyclements Apr 30, 2026 https://github.com/feast-dev/feast/pull/6344/commits/81aea6e3779de13e47ee6e47cb777f7f096db8ed
4f142a3 -s caseyclements May 1, 2026 https://github.com/feast-dev/feast/pull/6344/commits/4f142a3c12212deaf843622230844e1f46b73632
22cc690 chore: merge upstream/master and regenerate lockfiles caseyclements May 1, 2026 https://github.com/feast-dev/feast/pull/6344/commits/22cc69041d00b88afef05905d5c7a20247f63524
d4cc897 fix: add dialect=pymysql to MySqlContainer after testcontainers upgrade caseyclements May 1, 2026 https://github.com/feast-dev/feast/pull/6344/commits/d4cc897d606900ceae953d1b237744c8f40e9889
Clear filters https://github.com/feast-dev/feast/pull/6344/files
Please reload this pagehttps://github.com/feast-dev/feast/pull/6344/files
Please reload this pagehttps://github.com/feast-dev/feast/pull/6344/files
pixi.lock https://github.com/feast-dev/feast/pull/6344/files#diff-514667ae85a632bc7477f28eb9a990559627589fb6fe88da2732569b2143afb3
pyproject.toml https://github.com/feast-dev/feast/pull/6344/files#diff-50c86b7ed8ac2cf95bd48334961bf0530cdc77b5a56f852c5c61b89d735fd711
mongodb.py https://github.com/feast-dev/feast/pull/6344/files#diff-5e9b45994c81d8875be55786d2f48408094370a0351f8c6fc18160dc103c1db0
py3.10-ci-requirements.txt https://github.com/feast-dev/feast/pull/6344/files#diff-c9c1d93f98a9f2f98bd2f8efaa3092124d4a7a1c833eac72ba460e61882ac406
py3.10-minimal-requirements.txt https://github.com/feast-dev/feast/pull/6344/files#diff-df0272aa3c56cda34322f237ff5ed561ac8e815832c340e1d2acaaa6ce61450d
py3.10-minimal-sdist-requirements.txt https://github.com/feast-dev/feast/pull/6344/files#diff-b1d6f75f21900b80c03b0e4850384d5603b39cdb8d2a543895561c51f03d98cd
py3.11-ci-requirements.txt https://github.com/feast-dev/feast/pull/6344/files#diff-ac522b324e71653909b38058afeaa909c1cdc7bb28cbd9be89e2bcdb7094268f
py3.11-minimal-requirements.txt https://github.com/feast-dev/feast/pull/6344/files#diff-8c61d5abea6475cd26349393df6f517c6618327698d6dcf28c6661c1a47fde91
py3.11-minimal-sdist-requirements.txt https://github.com/feast-dev/feast/pull/6344/files#diff-436575176564cadc81bc2c16d7bd34810cb84386c7906240b976c4a323bdc30a
py3.12-ci-requirements.txt https://github.com/feast-dev/feast/pull/6344/files#diff-390aad293f22ff0984dbc3cf8286e53d656f7596a5a600dd1d4e3762e24d799a
py3.12-minimal-requirements.txt https://github.com/feast-dev/feast/pull/6344/files#diff-d9a06f0b5fdecd0d80cabbc35a442eedef974d11bfa446161633e0e7b05b4c6e
py3.12-minimal-sdist-requirements.txt https://github.com/feast-dev/feast/pull/6344/files#diff-cbdfea8ade942eb947a984fad5caeea800af2232ed4b8128a1cbc77a22ca1df9
conftest.py https://github.com/feast-dev/feast/pull/6344/files#diff-f511ffb9867f1db64defb93fa0cb58c6643e7ca49651ef8825aaeb9ee3cb033b
test_mongodb_vector_search.py https://github.com/feast-dev/feast/pull/6344/files#diff-0b3cbd4a26ad94b7184fbb4f5d10b26e51351a7e5f2404ca46bab773171650aa
test_mysql_versioning.py https://github.com/feast-dev/feast/pull/6344/files#diff-869d5e89b057f2615ce9be27181ebdf071a5f514f0f104ff77bd2d704cca0fcb
test_mongodb_online_retrieval.py https://github.com/feast-dev/feast/pull/6344/files#diff-6fcb7a98fa5370c00d942d5a4f1a62bf35c76b2e47812f10a81ff9ec74d0ddde
mongodb.py https://github.com/feast-dev/feast/pull/6344/files#diff-fa6327edd94c633db5c8d72466bf4f5b6d5884564c387529ee81ca2bae29a157
mysql.py https://github.com/feast-dev/feast/pull/6344/files#diff-f56db62f2dc29639db5a96673c2c92e2358033a419e7fdc42b5a1565e35c869e
pixi.lockhttps://github.com/feast-dev/feast/pull/6344/files#diff-514667ae85a632bc7477f28eb9a990559627589fb6fe88da2732569b2143afb3
View file https://github.com/caseyclements/feast/blob/d4cc897d606900ceae953d1b237744c8f40e9889/pixi.lock
Open in desktop https://desktop.github.com
Please reload this pagehttps://github.com/feast-dev/feast/pull/6344/files
pyproject.tomlhttps://github.com/feast-dev/feast/pull/6344/files#diff-50c86b7ed8ac2cf95bd48334961bf0530cdc77b5a56f852c5c61b89d735fd711
View file https://github.com/caseyclements/feast/blob/d4cc897d606900ceae953d1b237744c8f40e9889/pyproject.toml
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/feast-dev/feast/pull/6344/{{ revealButtonHref }}
https://github.com/feast-dev/feast/pull/6344/files#diff-50c86b7ed8ac2cf95bd48334961bf0530cdc77b5a56f852c5c61b89d735fd711
https://github.com/feast-dev/feast/pull/6344/files#diff-50c86b7ed8ac2cf95bd48334961bf0530cdc77b5a56f852c5c61b89d735fd711
https://github.com/feast-dev/feast/blob/master/CODEOWNERS#L10
sdk/python/feast/infra/online_stores/mongodb_online_store/mongodb.pyhttps://github.com/feast-dev/feast/pull/6344/files#diff-5e9b45994c81d8875be55786d2f48408094370a0351f8c6fc18160dc103c1db0
View file https://github.com/caseyclements/feast/blob/d4cc897d606900ceae953d1b237744c8f40e9889/sdk/python/feast/infra/online_stores/mongodb_online_store/mongodb.py
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/feast-dev/feast/pull/6344/{{ revealButtonHref }}
https://github.com/feast-dev/feast/pull/6344/files#diff-5e9b45994c81d8875be55786d2f48408094370a0351f8c6fc18160dc103c1db0
https://github.com/feast-dev/feast/pull/6344/files#diff-5e9b45994c81d8875be55786d2f48408094370a0351f8c6fc18160dc103c1db0
https://github.com/feast-dev/feast/pull/6344/files#diff-5e9b45994c81d8875be55786d2f48408094370a0351f8c6fc18160dc103c1db0
https://github.com/feast-dev/feast/pull/6344/files#diff-5e9b45994c81d8875be55786d2f48408094370a0351f8c6fc18160dc103c1db0
https://github.com/feast-dev/feast/pull/6344/files#diff-5e9b45994c81d8875be55786d2f48408094370a0351f8c6fc18160dc103c1db0
https://github.com/feast-dev/feast/pull/6344/files#diff-5e9b45994c81d8875be55786d2f48408094370a0351f8c6fc18160dc103c1db0
https://github.com/feast-dev/feast/pull/6344/files#diff-5e9b45994c81d8875be55786d2f48408094370a0351f8c6fc18160dc103c1db0
https://github.com/feast-dev/feast/pull/6344/files#diff-5e9b45994c81d8875be55786d2f48408094370a0351f8c6fc18160dc103c1db0
https://github.com/feast-dev/feast/pull/6344/files#diff-5e9b45994c81d8875be55786d2f48408094370a0351f8c6fc18160dc103c1db0
Please reload this pagehttps://github.com/feast-dev/feast/pull/6344/files
Please reload this pagehttps://github.com/feast-dev/feast/pull/6344/files
https://github.com
Termshttps://docs.github.com/site-policy/github-terms/github-terms-of-service
Privacyhttps://docs.github.com/site-policy/privacy-policies/github-privacy-statement
Securityhttps://github.com/security
Statushttps://www.githubstatus.com/
Communityhttps://github.community/
Docshttps://docs.github.com/
Contacthttps://support.github.com?tags=dotcom-footer

Viewport: width=device-width


URLs of crawlers that visited me.