• About Milvus
  • Get Started
  • Concepts
  • User Guide
  • Data Import
  • AI Tools
  • Administration Guide
  • Tools
  • Integrations
    • Orchestration
    • Agents
    • Evaluation & Observability
    • Embedding Models
    • LLMs
    • Knowledge Engineering
    • Data Sources
    • Others
  • Tutorials
  • FAQs
  • API Reference

Search with Jev and Milvus

Vector search finds information related to a query. Building a useful search application also involves decisions: which passages actually answer the question, whether an earlier answer can be reused, and whether an agent has enough evidence to stop searching.

Milvus and Jev address different parts of this workflow. Milvus stores embeddings and retrieves candidate records, with metadata filters for constraints such as product version or knowledge-base scope. Jev evaluates the meaning of the retrieved text against instructions. Your application can use its judgments to select evidence or control the next search step.

What does Jev do?

A Jev request supplies context and one or more judgment questions. Its typed outputs include a choice among fixed options, an ordered score and a yes/no probability. These outputs let application code make a decision without parsing a free-form explanation. A generation model can still write an answer or a follow-up search query when needed.

For example, a user asks how to install Atlas v2. Milvus can restrict retrieval to v2 documentation and return similar passages about installation, upgrades and troubleshooting. Jev then evaluates which passages explain the initial setup. The application passes the selected evidence to an answer-generating model.

The responsibilities are straightforward:

  1. Retrieve with Milvus: find candidates within the required metadata constraints.
  2. Judge with Jev: evaluate those candidates against the question and a task-specific criterion.
  3. Act in application code: reorder results, filter context, reuse an answer or continue searching.

Some decisions happen before retrieval. Jev can choose a search scope or assess incoming documents before they enter a collection. Access control and exact filters remain the application’s responsibility.

Explore the search scenarios

The Search with Jev collection contains nine runnable tutorials. Each uses a small synthetic dataset and shows the retrieved records, judgments and resulting action.

Select better evidence

  • Rerank search results: reorder documentation and coding-agent memories. A memory about a laptop port error may resemble a container connection problem; a more useful memory records the actual container-host fix.
  • Filter retrieved context: distinguish initial-installation instructions from upgrade and troubleshooting passages after Milvus applies the version filter.
  • Rerank graph relations: answer a question about a book author’s birthplace by selecting both the book-to-author bridge and the author-to-birthplace relation, then preserve that ranking when fetching source passages.

Control search and answer reuse

  • Decide when to stop searching: a generation model proposes searches from accumulated evidence, while Jev judges whether the original question is answerable. The examples cover a direct answer, a two-hop question and an unavailable fact that reaches the search limit without an answer.
  • Route search queries: select documentation, billing or memory search, then apply the corresponding Milvus filter. An out-of-scope query takes a separate path.
  • Validate semantic cache reuse: retrieve a similar cached request, then check whether its answer also satisfies the new request’s task, language and context requirements.

Improve and inspect the knowledge pipeline

  • Curate documents before indexing: distinguish substantive operational guidance from promotional or incomplete material, with separate index, review and exclude actions.
  • Screen retrieved passages: identify text that tries to redirect an assistant, while retaining ordinary security advice. This is an additional screening step, not a security guarantee.
  • Evaluate search evidence: judge passage relevance, whether evidence is sufficient and whether an answer makes unsupported claims. The examples deliberately remove evidence or add an unsupported statement to make the distinction visible.

A ready-made reranking interface

Milvus Model provides an application-side JevRerankFunction: pass a query and candidate document texts, and receive scored results with their original indices, sorted by relevance. Use those indices to reorder the records returned by Milvus.

The Jev integration has been merged. See the implementation and constructor options for the current API. It accepts TYPESAFE_API_KEY and defaults to jev-latest. Use a package version that includes this integration.

The current wrapper uses a claim-and-evidence relevance prompt. Check that this criterion fits your task. For custom judgments such as memory compatibility, stopping or routing, follow the linked tutorials using the TypeSafe API directly. The tutorials demonstrate direct API calls from Python application code.

Try it with Milvus

Open the reranking tutorial in Colab to start with candidate retrieval and ranking. For local setup and the full tutorial list, see the collection README.

The examples use a Gemini API key for embeddings and a TypeSafe API key for Jev. The agentic-search tutorial also uses Gemini for query and answer generation. Sample text is sent to these API providers, and calls may consume credits.

The tutorials run with Milvus Lite by default and include connection options for a Milvus server or Zilliz Cloud. The same division of work applies across deployments: Milvus retrieves candidates, and the application sends the relevant text to Jev for judgment.

Treat the examples as starting points for your own criteria and thresholds. A relevance score does not guarantee an answer is correct, and these small teaching datasets do not establish production accuracy or speed.

Explore implementations and evaluation results

The following open-source projects apply these ideas to larger search workflows. Their linked reports explain the datasets, comparisons and limitations of each experiment.

ProjectSearch use caseJev work
MemSearchPersistent Markdown memory for coding agentsJev implementation · Evaluation
Vector Graph RAGVector and graph retrieval for multi-hop questionsJev implementation · Evaluation
DeepSearcherIterative search over private knowledgeExperiment runner · Search-stopping evaluation (standalone experiment)
GPTCacheReuse answers to compatible requestsJev implementation · Evaluation

DeepSearcher’s contribution is a standalone search-stopping experiment. The other implementation links show task-specific Jev integrations. Results from these projects should be read in their own evaluation context, rather than treated as a shared benchmark.