Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
37 commits
Select commit Hold shift + click to select a range
018a219
Merge pull request #46 from mongodb/next-vuln-fixup
dacharyc Dec 3, 2025
5920177
change dependency
shuangela Dec 8, 2025
a1afa13
fix
shuangela Dec 8, 2025
ef78023
change file
shuangela Dec 8, 2025
eec8914
Merge pull request #48 from mongodb/DOCSP-56258-fix-security-alert-de…
shuangela Dec 8, 2025
8e52fbe
chore(fix): Removed Python Custom Error Handler & Fixed Python Bug in…
tmcneil-mdb Dec 12, 2025
89c8d6c
Bump next to v16.0.10
cbullinger Dec 12, 2025
d3148f9
Merge pull request #52 from mongodb/cbullinger-dependabot-bump
cbullinger Dec 12, 2025
65e487f
Add error handling for missing/invalid Voyage API key
cbullinger Dec 8, 2025
7b68bdc
Add Voyage AI error handling improvements to Python and Java backends
cbullinger Dec 12, 2025
695161c
Fix deprecated datetime.utcnow() warning in Python error response
cbullinger Dec 12, 2025
727f84f
Fix Python Voyage AI error handling to use SDK exception types
cbullinger Dec 15, 2025
4972a4e
Fix: Move voyageai.Client() creation inside try/except block
cbullinger Dec 16, 2025
35d46cf
Merge pull request #50 from mongodb/docsp-55531-voyage-api-error-hand…
cbullinger Dec 16, 2025
5e6f4a0
Fix MongoDB Atlas Search returning too many results for multi-word qu…
cbullinger Dec 16, 2025
010b146
Fix MongoDB Atlas Search returning too many results for multi-word qu…
cbullinger Dec 16, 2025
b1073cb
Add fuzzy search hints to directors, writers, and cast input fields
cbullinger Dec 16, 2025
28d9a1c
Improve search modal UI layout and aesthetics
cbullinger Dec 16, 2025
3c51ad1
Upgrade filelock to v3.20.1 per dependabot alert
cbullinger Dec 17, 2025
b40064b
Regenerate requirements.txt
cbullinger Dec 17, 2025
f40f4e9
Merge pull request #55 from mongodb/dependabot-9
cbullinger Dec 17, 2025
ba3902f
Refactor: Use text operator matchCriteria='all' instead of compound q…
cbullinger Dec 17, 2025
2607122
feat: Add appname to mongoclient for analytics (#56)
jordan-smith721 Dec 19, 2025
6cf9190
Use compound should clauses for better search result ranking
cbullinger Dec 19, 2025
868d179
Reduce fuzzy maxEdits from 2 to 1 to prevent over-matching
cbullinger Dec 19, 2025
e635177
Upgrade langchain-core to fix security alert
dacharyc Dec 23, 2025
606ab89
Merge pull request #58 from mongodb/langchain-core-security-fix-dev
dacharyc Dec 23, 2025
4eabf95
Update comments
cbullinger Jan 5, 2026
f9a7f16
Bump aiohttp from 3.13.2 to 3.13.3
cbullinger Jan 6, 2026
3e0b180
Merge pull request #54 from mongodb/docsp-56383-mdb-search-bug
cbullinger Jan 6, 2026
770e67b
Merge pull request #60 from mongodb/bump-aiohttp-3.13.3
cbullinger Jan 6, 2026
a1b3609
Add vector search score to the vector search results
cbullinger Jan 7, 2026
2c97e1c
Add comment
cbullinger Jan 7, 2026
5b3098a
Bump urllib3 from 2.6.1 to 2.6.3
cbullinger Jan 8, 2026
30f7fac
Merge pull request #63 from mongodb/bump-urllib3-2.6.3-dev
cbullinger Jan 8, 2026
2491f22
Merge pull request #61 from mongodb/docsp-55532-vector-scoring
cbullinger Jan 8, 2026
40ff772
Merge branch 'main' into development
cbullinger Jan 9, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
59 changes: 54 additions & 5 deletions .github/workflows/run-python-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -38,9 +38,58 @@ jobs:
- name: Download sample data
run: curl https://atlas-education.s3.amazonaws.com/sampledata.archive -o sampledata.archive

- name: Add sample data to database
run: mongorestore --archive=sampledata.archive --port=27017
- name: Setup Database (Data & Indexes)
run: |
# 1. Restore the data
mongorestore --archive=sampledata.archive --port=27017

# 2. Prepare the Search Index Definition
echo '{
"name": "movieSearchIndex",
"database": "sample_mflix",
"collectionName": "movies",
"mappings": {
"dynamic": false,
"fields": {
"plot": {"type": "string", "analyzer": "lucene.standard"},
"fullplot": {"type": "string", "analyzer": "lucene.standard"},
"directors": {"type": "string", "analyzer": "lucene.standard"},
"writers": {"type": "string", "analyzer": "lucene.standard"},
"cast": {"type": "string", "analyzer": "lucene.standard"}
}
}
}' > search_index.json

# 3. Create the Search Index
atlas deployments search indexes create \
--deploymentName myLocalRs1 \
--file search_index.json

# 4. Prepare the Vector Index Definition
echo '{
"name": "vector_index",
"database": "sample_mflix",
"collectionName": "embedded_movies",
"type": "vectorSearch",
"fields": [
{
"type": "vector",
"path": "plot_embedding_voyage_3_large",
"numDimensions": 2048,
"similarity": "cosine"
}
]
}' > vector_index.json

# 5. Create the Vector Index
atlas deployments search indexes create \
--deploymentName myLocalRs1 \
--file vector_index.json

# 6. Wait for indexes to build
echo "Waiting for indexes to build..."
sleep 20

- name: Set up Python
uses: actions/setup-python@v5
with:
Expand All @@ -63,10 +112,10 @@ jobs:

- name: Run integration tests
working-directory: mflix/server/python-fastapi
run: pytest -m integration --verbose --tb=short --junit-xml=test-results-integration.xml || true
run: pytest -m integration --verbose --tb=short --junit-xml=test-results-integration.xml
env:
MONGO_URI: mongodb://localhost:27017
MONGO_DB: sample_mflix
MONGO_URI: mongodb://localhost:27017/?directConnection=true
MONGO_DB: sample_mflix

- name: Upload test results
uses: actions/upload-artifact@v4
Expand Down
4 changes: 2 additions & 2 deletions mflix/client/app/aggregations/page.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import React from 'react';
import { fetchMoviesWithComments, fetchMoviesByYear, fetchDirectorStats } from '../lib/api';
import { MovieWithComments, YearlyStats, DirectorStats } from '../types/aggregations';
import { fetchMoviesWithComments, fetchMoviesByYear, fetchDirectorStats } from '@/lib/api';
import { MovieWithComments, YearlyStats, DirectorStats } from '@/types/aggregations';
import styles from './aggregations.module.css';

export default async function AggregationsPage() {
Expand Down
11 changes: 11 additions & 0 deletions mflix/client/app/components/MovieCard/MovieCard.module.css
Original file line number Diff line number Diff line change
Expand Up @@ -105,6 +105,17 @@
font-size: 14px;
}

.vectorScore {
margin: 0 0 4px 0;
color: #0066cc;
font-size: 13px;
font-weight: 500;
background: #e6f0ff;
padding: 4px 8px;
border-radius: 4px;
display: inline-block;
}

.movieGenres {
margin: 0;
color: #888;
Expand Down
5 changes: 5 additions & 0 deletions mflix/client/app/components/MovieCard/MovieCard.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,11 @@ export default function MovieCard({ movie, isSelected = false, onSelectionChange
{movie.year && (
<p className={movieStyles.movieYear}>({movie.year})</p>
)}
{movie.score !== undefined && (
<p className={movieStyles.vectorScore}>
🎯 Vector Score: {movie.score.toFixed(4)}
</p>
)}
{movie.imdb?.rating && (
<p className={movieStyles.movieRating}>⭐ {movie.imdb.rating}/10</p>
)}
Expand Down
Loading