{"categories":[{"label":"Text Processing","url":"https://skillfed.io/packages/category/text-processing/2"}],"enrichment":{"capability":"Lunr is a lightweight, in-memory full-text search library that builds an inverted index from a set of documents and performs fast text searches without requiring a separate search server.","skillfed_tags":["search-indexing","lunr-js-compatible"],"use_cases":["Add full-text search to a documentation site (e.g., MkDocs) by pre-indexing pages in Python and serving the serialized index to the frontend.","Prototype a search feature for a web application before committing to Elasticsearch or another production search engine.","Search a small-to-medium corpus of documents in a Python application without external dependencies or infrastructure.","Build a backend search index that can be shared with a JavaScript frontend using the same Lunr.js format.","Implement keyword-based retrieval in a data processing pipeline where documents are already in memory."],"what_it_does":"Lunr is a Python port of the JavaScript Lunr.js library, designed to provide full-text search capabilities without the overhead of a dedicated search server like Elasticsearch. It works by parsing a collection of documents (represented as dictionaries) and building an inverted index that enables fast text queries. The index is kept entirely in memory, making it suitable for prototyping, smaller applications, or situations where deploying a full-scale search infrastructure is impractical.\n\nA key feature is interoperability with Lunr.js: you can build an index in Python and serialize it for use in a browser-based frontend, or vice versa. This is particularly useful for static documentation sites (like those built with MkDocs) where you want to pre-compute the search index on the backend to minimize startup time in the browser. The trade-off is that you must recreate or reload the index when your application starts, since it exists only in memory.","worth_installing":"Yes, if you need lightweight full-text search without external infrastructure and your document set is manageable in memory. The low install friction, permissive MIT license, and broad Python version support (3.9\u20133.13) make it a practical choice for prototyping or small-scale use. However, the aging maintenance status (524 days since last release) means you should verify compatibility with your specific Python version and use case before relying on it for production systems."},"id":"lunr","links":{"html":"https://skillfed.io/packages/lunr","md":"https://skillfed.io/packages/lunr.md","pypi":"https://pypi.org/project/lunr/"},"maintenance":{"status":"aging"},"meta":{"latest_release":"2025-03-08","license_spdx":"MIT","license_treatment":"permissive","name":"lunr","python_support":"supports_current","summary":"A Python implementation of Lunr.js"},"popularity":{"monthly_downloads":291159,"position":7973,"tier":"top_15000"},"security":{"n_vulnerabilities":0},"version":"0.8.0"}
