Oracle Index features a smart search functionality. To open the search view, either press [CTRL + ORACLE_HOTKEY], or the search hotkey (unbound by default). There's also a small search icon when viewing a wiki entry.
When opening the search screen for the first time, it may take a few seconds to index the available pages before you can search. The search is a full-powered semantic search, powered by machine learning. This means you don't have to search with exact keywords, you can enter full sentences and relevant content will be shown, even if the words don't match exactly. Any relevant topics will be shown.
Technical Details
Under the hood, Oracle Index generates embeddings for all pages, which are preprocessed into chunks. A small sentence transformer model (all-MiniLm-L6-V2-q) then generates embeddings for each chunk, and for the search query. The embedding vectors are stored in memory. The search query embedding vector is then compared to the embeddings of the wiki chunks. The closest N results are then displayed to the user.
The library used for this is Langchain4j, which uses the DJL Framework. The embedding model is about 15mb in size.
Limits
Search indexes base-language page text and does not currently build a separate semantic index for translated text. Selecting a result still opens its translated page when available, and result titles use the active language.
The embedding model and native runtime make the search-enabled artifact larger. If the installed platform artifact does not include that runtime, Oracle Index reports that search is unavailable and points to the cross-platform artifact instead. Normal wiki browsing does not depend on semantic search.