docs(examples): add metadata filter operator snippets#438
Conversation
There was a problem hiding this comment.
3 issues found across 7 files
Prompt for AI agents (unresolved issues)
Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.
<file name="examples/javascript/metadata-filters/shared.ts">
<violation number="1" location="examples/javascript/metadata-filters/shared.ts:81">
P2: A failure during upload, build, or polling can leave the remotely initialized temporary index behind because `indexCreated` remains false until the entire multi-stage `createIndex` call resolves. Cleanup eligibility should be tracked once remote creation may have started, with a best-effort existence check/delete on failure.</violation>
<violation number="2" location="examples/javascript/metadata-filters/shared.ts:95">
P3: Results that omit optional `timeTakenInMs` print `in undefinedms`. Formatting the timing suffix conditionally keeps the runnable example's output valid for every `SearchResult`.</violation>
<violation number="3" location="examples/javascript/metadata-filters/shared.ts:104">
P2: When loading or querying fails and deletion also fails, the `finally` rejection replaces the original error, hiding the actual example failure. Preserve the primary exception while reporting the cleanup error separately.</violation>
</file>
Reply with feedback, questions, or to request a fix.
Fix all with cubic | Re-trigger cubic
| } finally { | ||
| if (indexCreated) { | ||
| console.log(`\nDeleting temporary index: ${indexName}`); | ||
| await client.deleteIndex(indexName); |
There was a problem hiding this comment.
P2: When loading or querying fails and deletion also fails, the finally rejection replaces the original error, hiding the actual example failure. Preserve the primary exception while reporting the cleanup error separately.
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At examples/javascript/metadata-filters/shared.ts, line 104:
<comment>When loading or querying fails and deletion also fails, the `finally` rejection replaces the original error, hiding the actual example failure. Preserve the primary exception while reporting the cleanup error separately.</comment>
<file context>
@@ -0,0 +1,107 @@
+ } finally {
+ if (indexCreated) {
+ console.log(`\nDeleting temporary index: ${indexName}`);
+ await client.deleteIndex(indexName);
+ }
+ }
</file context>
|
|
||
| console.log(`\nCreating temporary index: ${indexName}`); | ||
| await client.createIndex(indexName, documents, { modelId: "moss-minilm" }); | ||
| indexCreated = true; |
There was a problem hiding this comment.
P2: A failure during upload, build, or polling can leave the remotely initialized temporary index behind because indexCreated remains false until the entire multi-stage createIndex call resolves. Cleanup eligibility should be tracked once remote creation may have started, with a best-effort existence check/delete on failure.
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At examples/javascript/metadata-filters/shared.ts, line 81:
<comment>A failure during upload, build, or polling can leave the remotely initialized temporary index behind because `indexCreated` remains false until the entire multi-stage `createIndex` call resolves. Cleanup eligibility should be tracked once remote creation may have started, with a best-effort existence check/delete on failure.</comment>
<file context>
@@ -0,0 +1,107 @@
+
+ console.log(`\nCreating temporary index: ${indexName}`);
+ await client.createIndex(indexName, documents, { modelId: "moss-minilm" });
+ indexCreated = true;
+
+ console.log("Loading index locally for filtered query...");
</file context>
| filter: example.filter, | ||
| }); | ||
|
|
||
| console.log(`\nFound ${results.docs.length} result(s) in ${results.timeTakenInMs}ms:`); |
There was a problem hiding this comment.
P3: Results that omit optional timeTakenInMs print in undefinedms. Formatting the timing suffix conditionally keeps the runnable example's output valid for every SearchResult.
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At examples/javascript/metadata-filters/shared.ts, line 95:
<comment>Results that omit optional `timeTakenInMs` print `in undefinedms`. Formatting the timing suffix conditionally keeps the runnable example's output valid for every `SearchResult`.</comment>
<file context>
@@ -0,0 +1,107 @@
+ filter: example.filter,
+ });
+
+ console.log(`\nFound ${results.docs.length} result(s) in ${results.timeTakenInMs}ms:`);
+ results.docs.forEach((doc, index) => {
+ const preview = doc.text.length > 80 ? `${doc.text.slice(0, 80)}...` : doc.text;
</file context>
|
Update: I was able to complete the CLA from another device. The CLA check now shows signed. Thanks. |
Summary
$eq,$and,$in, and$nearunderexamples/javascript/metadata-filters/.Closes #417
Verification
npm cinpm run type-checknpm run lintgit diff --checkNotes
The examples require real
MOSS_PROJECT_IDandMOSS_PROJECT_KEYcredentials to run end-to-end. I verified them with the local TypeScript and ESLint checks; at runtime they create a temporary index, run one filtered query, and delete the index.