{
"info": {
"author": "Naoya Inada",
"author_email": "naoina@kuune.org",
"bugtrack_url": null,
"classifiers": [
"Development Status :: 3 - Alpha",
"Intended Audience :: Developers",
"License :: OSI Approved :: MIT License",
"Programming Language :: Python",
"Topic :: Internet :: WWW/HTTP :: Indexing/Search",
"Topic :: Software Development :: Libraries"
],
"description": "pyroonga |travis-ci-status|_\n============================\n\nWhat's this?\n------------\n\nPython interface for `groonga `_ fulltext search engine.\n\nRequirements\n------------\n\n- Python 2.6 or 3.x and later\n- groonga\n\nInstallation\n------------\n\nfrom pypi::\n\n % pip install pyroonga\n\nfrom source::\n\n % python setup.py install\n\nUsage\n-----\n\nFirst, Please run ``groonga`` by server mode or daemon mode. see following::\n\n # server mode\n % groonga -s DB_PATH_NAME\n\n # daemon mode\n % groonga -d DB_PATH_NAME\n\nSee ``groonga --help`` for more options.\n\nCreate Table\n^^^^^^^^^^^^\n\n::\n\n from pyroonga import tablebase, Column, Groonga\n\n # create the base class for table definition.\n Table = tablebase()\n\n # define the table\n class Site(Table):\n title = Column()\n name = Column()\n\n class Blog(Table):\n entry = Column()\n\n # create and bind the groonga connection object\n grn = Groonga()\n Table.bind(grn)\n\n # create the all table on groonga's database\n Table.create_all()\n\nData loading\n^^^^^^^^^^^^\n\n::\n\n data = [Site(_key='key1', title='foo', name='hoge'),\n Site(_key='key2', title='bar', name='fuga'),\n Site(_key='key3', title='baz', name='piyo'),\n Site(_key='key4', title='qux', name='xyzzy')]\n\n Site.load(data)\n\nThe example above is load the data to groonga immediately.\nAlso pseudo commit and rollback are supported::\n\n data1 = [Site(_key='key5', title='Constellation', name='Sagittarius'),\n Site(_key='key6', title='Constellation', name='Pisces')]\n\n # first load, but not load to groonga actually\n data = Site.load(data1, immediate=False)\n\n data2 = [Site(_key='key7', title='Constellation', name='Aquarius')]\n data.load(data2) # same as previous\n\n # load data to groonga actually\n data.commit()\n\nOr reset loaded data::\n\n data.rollback()\n\nNote that loaded data reset is only if set ``immediate=False``\\ .\n\nQuery and get data as a mapped object\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nGet the all data from ``Site`` table::\n\n data = Site.select().all()\n\nAnd print the data::\n\n for row in data:\n print(row._id, row._key, row.title)\n\nFulltext search queries::\n\n Site.select().match_columns(Site.title).query('foo').all()\n Site.select().match_columns(Site.title, Site.name).query('bar').all()\n\nThe above example is same as following queries::\n\n select --table Site --match_columns 'title' --query \"foo\"\n select --table Site --match_columns 'title OR name' --query \"bar\"\n\nFor more complex queries using `pyroonga.odm.GE`::\n\n from pyroonga.odm import GE\n\n Site.select().match_columns(Site.title).query(GE('foo') | GE('bar')).all()\n\nThe above example is same as following query::\n\n select --table Site --match_columns 'title' --query \"(foo OR bar)\"\n\nAnd also not use `match_columns`::\n\n Site.select(title='foo').all()\n Site.select(title='foo', name='bar').all() # \"or\" search\n\nThe above example is same as following queries::\n\n select --table Site --query \"(title:@\\\"foo\\\")\"\n select --table Site --query \"(title:@\\\"foo\\\" OR name:@\\\"bar\\\")\"\n\nConditional search query::\n\n Site.select(Site.title == 'bar').all()\n\nConbination for a condition::\n\n Site.select((Site._id > 3) & (Site.title == 'baz')).all()\n\nLimit and offset::\n\n Site.select().limit(3).offset(2).all()\n\nSortby::\n\n Site.select().sortby(Site._id).all() # asc\n Site.select().sortby(-Site._id).all() # desc\n\nSelect the output columns::\n\n # get the title and name columns\n Site.select().output_columns(Site.title, Site.name).all()\n\n # get the all columns\n Site.select().output_columns(Site.ALL).all()\n\nDrilldown\n\"\"\"\"\"\"\"\"\"\n\nSwitch to the drilldown query after the call of drilldown() from select() method chain::\n\n data = Site.select().sortby(Site._key).drilldown(Site.title).all()\n\nResult of drilldown will be stored to the ``drilldown`` attribute of the return value from all() method::\n\n for drilldown in data.drilldown:\n print(drilldown._key, drilldown._nsubrecs)\n\nA ``sortby()`` method in example above, It is query option of ``--sortby``\\ .\nFor sortby of drilldown, Please call of ``sortby()`` method after the call of ``drilldown()`` method::\n\n Site.select().drilldown(Site.title).sortby(Site._key).all()\n\nA ``sortby()`` method in example above, It is query option of ``--drilldown_sortby``\\ .\nOf course, As well as ``limit()`` , ``offset()`` and ``output_columns()`` methods.\n\nSuggest\n^^^^^^^\n\n**N.B.** The Groonga's suggest feature is still in draft.\n\nFirst, Create table if still not created::\n\n from pyroonga import SuggestTable\n\n grn = Groonga()\n SuggestTable.bind(grn)\n SuggestTable.create_all()\n\nSecond, Data loading::\n\n import time\n from pyroonga import event_query\n\n data = [event_query(time=time.time(), sequence=1, item='e'),\n event_query(time=time.time(), sequence=1, item='en'),\n event_query(time=time.time(), sequence=1, item='eng'),\n event_query(time=time.time(), sequence=1, item='engi'),\n event_query(time=time.time(), sequence=1, item='engin'),\n event_query(time=time.time(), sequence=1, item='engine', type='submit')]\n event_query.load(data)\n\nFinally, Querying::\n\n from pyroonga import item_query, SuggestType\n\n query = 'en'\n result = item_query.suggest(query).types(SuggestType.complete). \\\n frequency_threshold(1).all()\n for r in result.complete:\n print(\"key is '%s', score is %s\" % (r._key, r._score))\n\nSee also http://groonga.org/docs/suggest.html\n\nMore information\n^^^^^^^^^^^^^^^^\n\nStill not written.\n\nSee also\n--------\n\nhttp://groonga.org/ (Japanese: http://groonga.org/ja/ )\n\nLICENSE\n-------\n\npyroonga is licensed under the MIT license.\n\n.. |travis-ci-status| image:: https://travis-ci.org/naoina/pyroonga.png?branch=master\n.. _`travis-ci-status`: https://travis-ci.org/naoina/pyroonga\n\n\nChangelog\n---------\n\nv0.5.2 (2013-09-17)\n^^^^^^^^^^^^^^^^^^^\n\n- Multibyte support\n- Add 'filter' API\n- Some changes\n\nv0.5.1 (2013-08-17)\n^^^^^^^^^^^^^^^^^^^\n\n- More support the queries of Groonga\n- Add ``GroongaRecord`` and use to mapping it instead of Table sub-class\n- Host and port for connect to Groonga can now specify by constructor of ``pyroonga.Groonga``\n\nv0.5 (2013-07-30)\n^^^^^^^^^^^^^^^^^\n\n- Change package name from `pyroonga.orm` to `pyroonga.odm` (**Note that incompatible with old releases**)\n- Add `match_columns` and `query` API\n- Change license to MIT\n- Fix `issues#2 `_\n\nv0.4 (2012-03-28)\n^^^^^^^^^^^^^^^^^\n\n- Add suggest\n\nv0.3 (2012-02-17)\n^^^^^^^^^^^^^^^^^\n\n- Add load the data to groonga\n\nv0.2 (2012-02-17)\n^^^^^^^^^^^^^^^^^\n\n- Add ORM\n- Add documentation of basic usage\n\nv0.1 (2012-02-05)\n^^^^^^^^^^^^^^^^^\n\n- First release",
"description_content_type": null,
"docs_url": null,
"download_url": "UNKNOWN",
"downloads": {
"last_day": -1,
"last_month": -1,
"last_week": -1
},
"home_page": "https://github.com/naoina/pyroonga",
"keywords": "groonga fulltext search engine",
"license": "MIT",
"maintainer": null,
"maintainer_email": null,
"name": "pyroonga",
"package_url": "https://pypi.org/project/pyroonga/",
"platform": "UNKNOWN",
"project_url": "https://pypi.org/project/pyroonga/",
"project_urls": {
"Download": "UNKNOWN",
"Homepage": "https://github.com/naoina/pyroonga"
},
"release_url": "https://pypi.org/project/pyroonga/0.5.2/",
"requires_dist": null,
"requires_python": null,
"summary": "Python interface for groonga",
"version": "0.5.2"
},
"last_serial": 867429,
"releases": {
"0.1": [
{
"comment_text": "",
"digests": {
"md5": "9afb753cab280d7622e4bdfe9e002550",
"sha256": "384fe82c27384a9c0faaa6a3b2ee1ef1472596479c4cbaf7a5ffc6b3e1c0ad1c"
},
"downloads": -1,
"filename": "pyroonga-0.1.tar.gz",
"has_sig": false,
"md5_digest": "9afb753cab280d7622e4bdfe9e002550",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 7702,
"upload_time": "2012-02-05T13:23:48",
"url": "https://files.pythonhosted.org/packages/c2/45/fde63cebe21da1dd9fbc763c0295a35c96414c623e0b43ce2098cca5d526/pyroonga-0.1.tar.gz"
}
],
"0.2": [
{
"comment_text": "",
"digests": {
"md5": "39d3e32242e52b83026e5ec170a2f93d",
"sha256": "0d6d23a5cd1398381d10dd5fddadeff6eb23158bb5c3d62e2a8799182a30d457"
},
"downloads": -1,
"filename": "pyroonga-0.2.tar.gz",
"has_sig": false,
"md5_digest": "39d3e32242e52b83026e5ec170a2f93d",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 19697,
"upload_time": "2012-02-16T17:27:38",
"url": "https://files.pythonhosted.org/packages/ed/96/44446d12f508b5a6315357bb24909e697ef1c4d7ed1cac4e554ae20a5c67/pyroonga-0.2.tar.gz"
}
],
"0.3": [
{
"comment_text": "",
"digests": {
"md5": "e5ec52f3ef3bad2fe1b3f3589391254c",
"sha256": "ede378fdbbc43a110a832287018a9e4ec34125cc4638309f7f6ba01f2b2fda73"
},
"downloads": -1,
"filename": "pyroonga-0.3.tar.gz",
"has_sig": false,
"md5_digest": "e5ec52f3ef3bad2fe1b3f3589391254c",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 22650,
"upload_time": "2012-02-17T06:52:57",
"url": "https://files.pythonhosted.org/packages/4b/7a/0e068d1a54c0d89e34c63384932ab91cbe62c47e8392751b9ae029e89dd0/pyroonga-0.3.tar.gz"
}
],
"0.4": [
{
"comment_text": "",
"digests": {
"md5": "a73cad256b88d6688fefd9d485f78ee3",
"sha256": "e3feec9d5e8c31555e66990d8ca766ed3994b7121845889c4168f183c1657902"
},
"downloads": -1,
"filename": "pyroonga-0.4.tar.gz",
"has_sig": false,
"md5_digest": "a73cad256b88d6688fefd9d485f78ee3",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 27233,
"upload_time": "2012-03-28T03:30:47",
"url": "https://files.pythonhosted.org/packages/d4/69/1cdcf7ca184419ea682c4dab18e0860278080cba649a81b4c3db75af57f1/pyroonga-0.4.tar.gz"
}
],
"0.5": [
{
"comment_text": "",
"digests": {
"md5": "f9ecc095f43b34f56302b2db861566b4",
"sha256": "07a5292ba8cea07f291da4a3ac3036482d3276bb805489ddcf5394063bbb3938"
},
"downloads": -1,
"filename": "pyroonga-0.5.tar.gz",
"has_sig": false,
"md5_digest": "f9ecc095f43b34f56302b2db861566b4",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 27252,
"upload_time": "2013-07-30T04:52:44",
"url": "https://files.pythonhosted.org/packages/9e/0e/5c02e541fd9e5ded83ff7d6c9a2dee7cd9e2745fb4e314d24c4f928494d6/pyroonga-0.5.tar.gz"
}
],
"0.5.1": [
{
"comment_text": "",
"digests": {
"md5": "c40988ef68e383d8a8226f2b71d17257",
"sha256": "5ccf18787395f38db3da87e8a3cddb1a2d123039e3ca5cf9cc0eebf8356b3422"
},
"downloads": -1,
"filename": "pyroonga-0.5.1.tar.gz",
"has_sig": false,
"md5_digest": "c40988ef68e383d8a8226f2b71d17257",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 31048,
"upload_time": "2013-08-17T13:08:54",
"url": "https://files.pythonhosted.org/packages/46/3a/82275214419a1bbc3a06f303edc89f989d51368518b3d3f344fbaae4a427/pyroonga-0.5.1.tar.gz"
}
],
"0.5.2": [
{
"comment_text": "",
"digests": {
"md5": "31d285c816da0c48ea6dce174c052f3a",
"sha256": "e68c69cc2d7566862600578c3329641e94dc1270aeb4778613cc67d88eaf5acb"
},
"downloads": -1,
"filename": "pyroonga-0.5.2.tar.gz",
"has_sig": false,
"md5_digest": "31d285c816da0c48ea6dce174c052f3a",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 40252,
"upload_time": "2013-09-17T04:29:30",
"url": "https://files.pythonhosted.org/packages/28/ab/f6aca0a3826853f4a6f9bdd5b011662fde0cfac637ee94209dac612bef88/pyroonga-0.5.2.tar.gz"
}
]
},
"urls": [
{
"comment_text": "",
"digests": {
"md5": "31d285c816da0c48ea6dce174c052f3a",
"sha256": "e68c69cc2d7566862600578c3329641e94dc1270aeb4778613cc67d88eaf5acb"
},
"downloads": -1,
"filename": "pyroonga-0.5.2.tar.gz",
"has_sig": false,
"md5_digest": "31d285c816da0c48ea6dce174c052f3a",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 40252,
"upload_time": "2013-09-17T04:29:30",
"url": "https://files.pythonhosted.org/packages/28/ab/f6aca0a3826853f4a6f9bdd5b011662fde0cfac637ee94209dac612bef88/pyroonga-0.5.2.tar.gz"
}
]
}