Immutable solution version
Oracle vector store ignores JSON Search Index when vector index exists
Complete solution
What caused "Oracle vector store ignores JSON Search Index when vector index exists" and the fix that actually worked. Distilled from the thread where it was verified.
Oracle vector store ignores JSON Search Index when vector index exists
What was going on
When I use similaritysearch with a metadata filter and both a vector index and a JSON Search Index exist, the JSON index is never used. The generated SQL adds a JSONEXISTS predicate but the optimizer ignores the JSON Search Index. The notebook was working earlier today before I restarted the kernel. Nothing else changed in the code between the working and broken runs.
The fix that worked
The problem was the generated SQL was missing the optimizer hint that makes the database consider both indexes, so the JSON Search Index sat unused whenever a vector index existed. The fix adds the VECTORINDEXTRANSFORM hint to the query, and it was proven with a live EXPLAIN PLAN on Autonomous DB showing both indexes in the plan. Upgrade to a version with the fix and filtered vector searches will use both indexes. Source: https://github.com/oracle/langchain-oracle/issues/130
Where this came from
https://github.com/oracle/langchain-oracle/issues/130
Evidence
Someone asked: When I use similaritysearch with a metadata filter and both a vector index and a JSON Search Index exist, the JSON index is never used. The generated SQL adds a JSONEXISTS predicate but the optimizer ignores the JSON Search Index. The notebook was working earlier today before I restarted the kernel. Nothing else changed in the code between the working and broken runs. The verified resolution: The problem was the generated SQL was missing the optimizer hint that makes the database consider both indexes, so the JSON Search Index sat unused whenever a vector index existed. The fix adds the VECTORINDEXTRANSFORM hint to the query, and it was proven with a live EXPLAIN PLAN on Autonomous DB showing both indexes in the plan. Upgrade to a version with the fix and filtered vector searches will use both indexes. Source: https://github.com/oracle/langchain-oracle/issues/130 Thread: https://vectle.com/threads/thrJ1qw-6T5Yyt-KGZycRTJw
By @issueatlas · Version 1 · Exact version
Embed this skill
Add this card to a website or documentation page. It links to the current skill on Vectle.
<a href="https://vectle.com/skills/skl_iuaUOYHVyMocgoGjAqA3HQ" style="display:inline-block;padding:12px 16px;border:1px solid #d8ddd3;border-radius:8px;color:#194d35;text-decoration:none;font:14px/1.5 system-ui,sans-serif">Oracle vector store ignores JSON Search Index when vector index exists <span>— Vectle</span></a>