{ "info": { "author": "Aric Coady", "author_email": "aric.coady@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 6 - Mature", "Framework :: CherryPy", "Intended Audience :: Developers", "License :: OSI Approved :: Apache Software License", "Operating System :: OS Independent", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Topic :: Internet :: WWW/HTTP :: HTTP Servers", "Topic :: Internet :: WWW/HTTP :: Indexing/Search", "Topic :: Software Development :: Libraries :: Python Modules", "Topic :: Text Processing :: Indexing" ], "description": "[![image](https://img.shields.io/pypi/v/lupyne.svg)](https://pypi.org/project/lupyne/)\n[![image](https://img.shields.io/pypi/pyversions/lupyne.svg)](https://python3statement.org)\n[![image](https://pepy.tech/badge/lupyne)](https://pepy.tech/project/lupyne)\n![image](https://img.shields.io/pypi/status/lupyne.svg)\n[![image](https://api.shippable.com/projects/56059e3e1895ca4474182ec3/badge?branch=master)](https://app.shippable.com/github/coady/lupyne)\n[![image](https://api.shippable.com/projects/56059e3e1895ca4474182ec3/coverageBadge?branch=master)](https://app.shippable.com/github/coady/lupyne)\n[![image](https://requires.io/github/coady/lupyne/requirements.svg)](https://requires.io/github/coady/lupyne/requirements/)\n[![image](https://img.shields.io/badge/code%20style-black-000000.svg)](https://pypi.org/project/black/)\n\nLupyne is a search engine based on [PyLucene](http://lucene.apache.org/pylucene/), the Python extension for accessing Java Lucene.\nLucene is a relatively low-level toolkit, and PyLucene wraps it through automatic code generation.\nSo although Java idioms are translated to Python idioms where possible, the resulting interface is far from Pythonic.\nSee `./examples` for comparisons with the Lucene API.\n\nLupyne also provides a RESTful JSON search server, based on [CherryPy](http://cherrypy.org).\nNote Solr and Elasticsearch are popular options for Lucene-based search, if no further (Python) customization is needed.\nSo while the server is suitable for production usage, its primary motivation is to be an extensible example.\n\nNot having to initially choose between an embedded library and a server not only provides greater flexibility,\nit can provide better performance, e.g., batch indexing offline and remote searching live.\nAdditionally only lightweight wrappers with extended behavior are used wherever possible,\nso falling back to using PyLucene directly is always an option, but should never be necessary for performance.\n\n# Usage\nPyLucene requires initializing the VM.\n\n```python\nimport lucene\n\nlucene.initVM()\n```\n\nIndexes are accessed through an `IndexSearcher` (read-only), `IndexWriter`, or the combined `Indexer`.\n\n```python\nfrom lupyne import engine\n\nsearcher = engine.IndexSearcher('index/path')\nhits = searcher.search('text:query')\n```\n\nRun the server.\n\n $ python -m lupyne.server\n\nRead the [documentation](http://lupyne.surge.sh).\n\n# Installation\n\n $ pip install lupyne[server]\n\nPyLucene is not `pip` installable.\n* [Install](http://lucene.apache.org/pylucene/install.html) instructions\n* [Docker](https://hub.docker.com) image: `$ docker pull coady/pylucene`\n* [Homebrew](https://brew.sh) formula: `$ brew install coady/tap/pylucene`\n\n# Dependencies\n* PyLucene >=7.7\n* six\n\nOptional server extras:\n* Python >=3.5\n* cherrypy >=11\n* clients >=0.2\n\n# Tests\n100% branch coverage.\n\n $ pytest [--cov]\n\n# Changes\n2.3\n* PyLucene >=7.7 required\n* PyLucene 8 supported\n\n2.2\n* PyLucene 7.6 supported\n\n2.1\n* PyLucene >=7 required\n\n2.0\n* PyLucene >=6 required\n* Python 3 support\n* client moved to external package\n\n1.9\n* Python 2.6 dropped\n* PyLucene 4.8 and 4.9 dropped\n* IndexWriter implements context manager\n* Server DocValues updated via patch method\n* Spatial tile search optimized\n\n1.8\n* PyLucene 4.10 supported\n* PyLucene 4.6 and 4.7 dropped\n* Comparator iteration optimized\n* Support for string based FieldCacheRangeFilters\n\n\n", "description_content_type": "text/markdown", "docs_url": "https://pythonhosted.org/lupyne/", "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/coady/lupyne", "keywords": "", "license": "Apache Software License", "maintainer": "", "maintainer_email": "", "name": "lupyne", "package_url": "https://pypi.org/project/lupyne/", "platform": "", "project_url": "https://pypi.org/project/lupyne/", "project_urls": { "Documentation": "https://lupyne.surge.sh", "Homepage": "https://github.com/coady/lupyne" }, "release_url": "https://pypi.org/project/lupyne/2.3/", "requires_dist": [ "six", "nbsphinx ; extra == 'docs'", "jupyter ; extra == 'docs'", "cherrypy (>=11) ; extra == 'server'", "clients (>=0.2) ; extra == 'server'" ], "requires_python": ">=2.7", "summary": "Pythonic search engine based on PyLucene, including a standalone server based on CherryPy.", "version": "2.3" }, "last_serial": 5817987, "releases": { "1.3": [ { "comment_text": "", "digests": { "md5": "8b42a21a25a1258da57017345f53e0be", "sha256": "04c6e9848bc3ccf99fec8ea4b71dc1496860f862f99a3546fda4d0491a6fa120" }, "downloads": -1, "filename": "lupyne-1.3.tar.gz", "has_sig": false, "md5_digest": "8b42a21a25a1258da57017345f53e0be", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 956149, "upload_time": "2013-05-15T16:22:38", "url": "https://files.pythonhosted.org/packages/ce/b9/ad0ae5a8b0483c6e8248e592d9dc021de1af88e9428d31c5bb3a4a7af9d9/lupyne-1.3.tar.gz" } ], "1.4": [ { "comment_text": "", "digests": { "md5": "f0d7b0f6bb4d55fb1f14c5a1ab186b15", "sha256": "0ef24b944905983df04dbf58c149a2fac26a65bc51bba5e764039d00e37b858d" }, "downloads": -1, "filename": "lupyne-1.4.tar.gz", "has_sig": false, "md5_digest": "f0d7b0f6bb4d55fb1f14c5a1ab186b15", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 955985, "upload_time": "2013-08-26T15:41:19", "url": "https://files.pythonhosted.org/packages/41/f5/5558d92a63d571045b7d5e859ecaf6e1335fca0bdf868fff8ef3ef287ac0/lupyne-1.4.tar.gz" } ], "1.5": [ { "comment_text": "", "digests": { "md5": "f900fe6e8d0e47a2bf18515b72f8142f", "sha256": "34a974d78a944750c8026ed609870d5b527a23f78e00821764d8fdefe61d7356" }, "downloads": -1, "filename": "lupyne-1.5.tar.gz", "has_sig": false, "md5_digest": "f900fe6e8d0e47a2bf18515b72f8142f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 947068, "upload_time": "2013-11-05T15:49:29", "url": "https://files.pythonhosted.org/packages/09/89/0fac047a648b237d17d44a556da431661a34fd1114362ea5846c5f7ef6ed/lupyne-1.5.tar.gz" } ], "1.6": [ { "comment_text": "", "digests": { "md5": "e735ddd8ac3d72c8cdb7e52d1e95e7c0", "sha256": "37f3527a08e5e4e4c74047a1d59ba1ce8f2b979e67ef9f038f2abe06ea1bb43b" }, "downloads": -1, "filename": "lupyne-1.6.tar.gz", "has_sig": false, "md5_digest": "e735ddd8ac3d72c8cdb7e52d1e95e7c0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1088470, "upload_time": "2014-04-29T00:39:48", "url": "https://files.pythonhosted.org/packages/01/68/86a066b1d1ea29426296ad737a18f557b9253081519905227d888d49e21f/lupyne-1.6.tar.gz" } ], "1.7": [ { "comment_text": "", "digests": { "md5": "3310d52094d168d7717a6ab8aec3df24", "sha256": "64654cd40393955b8c68c67731a300e9c9778d6210f2a746943ef3d4aaed2dce" }, "downloads": -1, "filename": "lupyne-1.7.tar.gz", "has_sig": false, "md5_digest": "3310d52094d168d7717a6ab8aec3df24", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 960059, "upload_time": "2014-07-18T00:09:24", "url": "https://files.pythonhosted.org/packages/5c/ea/7b93b2103e305d065ab5e91c1ece1459436099daf412c4788e589bb75a2c/lupyne-1.7.tar.gz" } ], "1.8": [ { "comment_text": "", "digests": { "md5": "2fdf9dfbbcd08502fa1505de3d366696", "sha256": "1f28e34ae04304f5ef809346b26cec8ea78aa6e1df99383924ac37f357cf5811" }, "downloads": -1, "filename": "lupyne-1.8.tar.gz", "has_sig": false, "md5_digest": "2fdf9dfbbcd08502fa1505de3d366696", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 959828, "upload_time": "2014-10-07T22:22:09", "url": "https://files.pythonhosted.org/packages/9d/80/2915d81dfb9cf28d777446440f0964dad979b82ba5601c8d13eb805859e9/lupyne-1.8.tar.gz" } ], "1.9": [ { "comment_text": "", "digests": { "md5": "df51410fb2367becdd25fd77471fbe9e", "sha256": "120e551bd8d21d6c79363e4313dba27d1b5de7c4fa65387f7bb066cccffeb06c" }, "downloads": -1, "filename": "lupyne-1.9.tar.gz", "has_sig": false, "md5_digest": "df51410fb2367becdd25fd77471fbe9e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 775899, "upload_time": "2015-09-26T19:51:01", "url": "https://files.pythonhosted.org/packages/b8/25/d249e6c98ed1b51af898a70356a4170cb2d6a7005691f8e7eddab7ff57fa/lupyne-1.9.tar.gz" } ], "2.0": [ { "comment_text": "", "digests": { "md5": "df394ec62287dfe85a8a4b134027224e", "sha256": "b64fbd1ac586d44d0feef05ae3372bc05210bb315481f3e2bd376fa45176fce5" }, "downloads": -1, "filename": "lupyne-2.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "df394ec62287dfe85a8a4b134027224e", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7", "size": 34250, "upload_time": "2017-12-29T19:20:12", "url": "https://files.pythonhosted.org/packages/e3/e4/38e40d526731318c7559d70434ddba342c16d0f511c28c9c3b17b82fb0d5/lupyne-2.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a62cd59a9826bfa23461e30e39d32ecb", "sha256": "a15e0c0079b707853a2bc607d0946b6c9a05dc5430ae624833e701498e08cad4" }, "downloads": -1, "filename": "lupyne-2.0.tar.gz", "has_sig": false, "md5_digest": "a62cd59a9826bfa23461e30e39d32ecb", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7", "size": 755637, "upload_time": "2017-12-29T19:20:19", "url": "https://files.pythonhosted.org/packages/34/7a/347ab86f0222a7c4080988abe8aabe629b129c67e25b1a540f2075ebb311/lupyne-2.0.tar.gz" } ], "2.1": [ { "comment_text": "", "digests": { "md5": "835757ef7ff552dde4361eb19d46801f", "sha256": "7bb9a00bc10dfdda793c7e33f799a85a51be50241580af7e51405b4afab307be" }, "downloads": -1, "filename": "lupyne-2.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "835757ef7ff552dde4361eb19d46801f", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7", "size": 31733, "upload_time": "2018-10-20T02:48:45", "url": "https://files.pythonhosted.org/packages/0a/4d/77a52bad7c6a27956f192f4a0109a49468a0af94ae1210c316638c63142e/lupyne-2.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f0f05432e63d75b2a44c8e61c63e1d1b", "sha256": "0b330b38cc87bde5051dfdd68b50cdecbc1a3990786a07de3eccb57955a10a89" }, "downloads": -1, "filename": "lupyne-2.1.tar.gz", "has_sig": false, "md5_digest": "f0f05432e63d75b2a44c8e61c63e1d1b", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7", "size": 757010, "upload_time": "2018-10-20T02:48:47", "url": "https://files.pythonhosted.org/packages/19/02/bad6ee560870841bad42cd18b75598937a9ffb2f496f7b7ad6b45c271e94/lupyne-2.1.tar.gz" } ], "2.2": [ { "comment_text": "", "digests": { "md5": "83b98e04009654f354b33e75c50a42d0", "sha256": "d7bdebeef40fb1325e45fa1ea474fdf36a13bc2324a320d150cca1d43379b6ae" }, "downloads": -1, "filename": "lupyne-2.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "83b98e04009654f354b33e75c50a42d0", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7", "size": 32456, "upload_time": "2019-01-14T20:34:03", "url": "https://files.pythonhosted.org/packages/d7/de/2f37a7e7c549cff22abddb8d98ca91b13fa89271584bf431fa87a707929a/lupyne-2.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5cab919c3f30c662f1325207d88d6da8", "sha256": "0503962a6ac686eaa51f279f6fcb005d506cbc60e3c568a5fda1c58908c26473" }, "downloads": -1, "filename": "lupyne-2.2.tar.gz", "has_sig": false, "md5_digest": "5cab919c3f30c662f1325207d88d6da8", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7", "size": 757341, "upload_time": "2019-01-14T20:34:05", "url": "https://files.pythonhosted.org/packages/63/d6/204d7cff2dabda28605020e4734c3185a05274182c68e5d97f17ce374ad6/lupyne-2.2.tar.gz" } ], "2.3": [ { "comment_text": "", "digests": { "md5": "f5035ae8fe2612f531b5e911f258edce", "sha256": "4d42a82f6245597b7fc6639af7fbde0b532f6401aafb131a903ee6afead71f94" }, "downloads": -1, "filename": "lupyne-2.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "f5035ae8fe2612f531b5e911f258edce", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7", "size": 32820, "upload_time": "2019-09-12T03:43:43", "url": "https://files.pythonhosted.org/packages/0e/9d/c3fb50d6e62baef3423083e35ced786d324f48f96b53f42b2cac42eb61aa/lupyne-2.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f3324717f6803348474c845c08d1afbf", "sha256": "d2466aebaa8e707deabb882b9bf9768ac38d977660ba5bc032f71c50e6e659d2" }, "downloads": -1, "filename": "lupyne-2.3.tar.gz", "has_sig": false, "md5_digest": "f3324717f6803348474c845c08d1afbf", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7", "size": 751815, "upload_time": "2019-09-12T03:43:46", "url": "https://files.pythonhosted.org/packages/b0/ad/457c3e681f909dae6e85254bf70701a98ac5cbd74c1c0e7bcc28011e9a78/lupyne-2.3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "f5035ae8fe2612f531b5e911f258edce", "sha256": "4d42a82f6245597b7fc6639af7fbde0b532f6401aafb131a903ee6afead71f94" }, "downloads": -1, "filename": "lupyne-2.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "f5035ae8fe2612f531b5e911f258edce", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7", "size": 32820, "upload_time": "2019-09-12T03:43:43", "url": "https://files.pythonhosted.org/packages/0e/9d/c3fb50d6e62baef3423083e35ced786d324f48f96b53f42b2cac42eb61aa/lupyne-2.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f3324717f6803348474c845c08d1afbf", "sha256": "d2466aebaa8e707deabb882b9bf9768ac38d977660ba5bc032f71c50e6e659d2" }, "downloads": -1, "filename": "lupyne-2.3.tar.gz", "has_sig": false, "md5_digest": "f3324717f6803348474c845c08d1afbf", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7", "size": 751815, "upload_time": "2019-09-12T03:43:46", "url": "https://files.pythonhosted.org/packages/b0/ad/457c3e681f909dae6e85254bf70701a98ac5cbd74c1c0e7bcc28011e9a78/lupyne-2.3.tar.gz" } ] }