The value is in what the single call accepts: field scoping and boolean operators turn a vague lookup into a precise one, and the highlighted excerpt means the model sees why a result matched rather than just that it did. The one thing to do before you start is fetch the index — the server has nothing to search without it.
A search server over a downloadable index of Jewish texts, built on the Tantivy search engine. It exposes one tool with a real query language, so a question can be scoped to text, reference or topic rather than thrown at the whole corpus.
- full_text_search runs a query across the library and ranks results by relevance
- Field-scoped search — text:term, reference:term, topics:term — so "love your neighbour" in the text and mitzvot in the topics can be one query
- Boolean AND and OR, required and excluded terms with + and -, quoted phrase search, and ? and * wildcards
- Each result carries its reference, its topics, a highlighted excerpt showing the match, and a relevance score
Python 3.10 or higher and the jewish_library package, run as `uv --directory path/to/directory run jewish_library`. The search index is not bundled — download and extract it from the link in the README before first run. Set PYTHONIOENCODING to utf-8 in the server's environment.
