import { Search, K, Knn } from 'chromadb';
// With expression objects
const search1 = new Search({
where: K("status").eq("active"),
rank: Knn({ query: "latest research papers" }),
limit: { limit: 10, offset: 0 },
select: [K.DOCUMENT, K.SCORE]
});
// With dictionaries (MongoDB-style)
const search2 = new Search({
where: { status: "active" },
rank: { $knn: { query: "latest research papers" } },
limit: { limit: 10, offset: 0 },
select: { keys: ["#document", "#score"] }
});
// Mixed types
const search3 = new Search({
where: K("category").eq("science"), // Expression
rank: { $knn: { query: "quantum mechanics" } }, // Dictionary
limit: 10, // Number
select: [K.DOCUMENT, K.SCORE, "author"] // Array
});
// Minimal search (IDs only)
const search4 = new Search();
// Just filtering
const search5 = new Search({ where: K("status").eq("published") });
// Just ranking
const search6 = new Search({ rank: Knn({ query: "artificial intelligence" }) });