{ "info": { "author": "ruifengyun", "author_email": "rfyiamcool@163.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 2 - Pre-Alpha", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3.0", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "#elasticsearch_parse\n=================\n\n\u9996\u5148\u6ce8\u660e\u4e0b\u672c\u9879\u76ee\u662f\u7531\u6765,\u5b66\u4e60Elasticsearch\u672c\u8eab\u662f\u6709\u4e9b\u75db\u82e6\u7684, \u6211\u4eec\u53ef\u4ee5\u719f\u7ec3\u7684\u7f16\u5199SQL \u3001 Mongodb\u8bed\u53e5\uff0c\u4f46\u5bf9\u4e8eElasticsearch Dsl\u8bed\u6cd5\u603b\u662f\u8499\u5934\uff0c\u4e00\u4e2a\u52b2\u7684\u7ffb\u627e\u7b14\u8bb0... \n\u7b80\u5355\u8bf4 Elasticsearch Parse\u53ef\u4ee5\u8ba9\u4f60\u66f4\u5bb9\u6613\u7684\u4e0a\u624bES, \u4ed6\u7684\u529f\u80fd\u4e3b\u8981\u662f\u8bed\u53e5\u6620\u5c04, \u6709\u70b9ORM\u7684\u610f\u601d... \n\n\u6b64\u9879\u76ee\u7ee7\u627f\u4e8e`elasticsearch-dsl-py`,\u672c\u6765\u662f\u60f3fork\u5b50\u9879\u76ee,\u5f00\u53d1\u597d\u540e\u63d0\u4ea4pull request, \u4f46\u662f\u60f3\u5230\u6211\u8fd9\u8bed\u6cd5\u6620\u5c04\u7684\u529f\u80fd, \u5bf9\u4e8e\u5b98\u65b9\u6765\u8bf4\u4e0d\u662f\u5f88\u7a00\u7f55,\u7d22\u6027\u76f4\u63a5\u780d\u6389\u4e86 70% \u4ee3\u7801,\u7136\u540e\u4e2d\u95f4\u53c8\u52a0\u4e86\u4e00\u4e9b\u4f50\u6599, \u6700\u7ec8\u53ea\u662f\u4e3a\u4e86DSL\u8bed\u53e5\u6620\u5c04\u529f\u80fd ! \n\n\u6a21\u5757\u5b89\u88c5\u65b9\u6cd5:\n```\npip install elasticsearch_parse\n```\n\n\u4e0b\u9762\u6211\u4eec\u6765\u4f53\u9a8c\u4e0b\u5c01\u88c5\u540e\u7684es\u8bed\u6cd5\u89e3\u91ca\u5668.\n\n\u9996\u5148\u7528\u539f\u59cb\u7684DSL\u8bed\u6cd5\u64cd\u4f5c,\u4e00\u773c\u671b\u53bb\u4f1a\u6709\u4e9b\u9ebb\u70e6, \u624b\u5199\u8d77\u6765\u4f1a\u66f4\u9ebb\u70e6. \n```\nfrom elasticsearch import Elasticsearch\nclient = Elasticsearch()\n\nresponse = client.search(\n index=\"my-index\",\n body={\n \"query\": {\n \"filtered\": {\n \"query\": {\n \"bool\": {\n \"must\": [{\"match\": {\"title\": \"python\"}}],\n \"must_not\": [{\"match\": {\"description\": \"beta\"}}]\n }\n },\n \"filter\": {\"term\": {\"category\": \"search\"}}\n }\n },\n \"aggs\" : {\n \"per_tag\": {\n \"terms\": {\"field\": \"tags\"},\n \"aggs\": {\n \"max_lines\": {\"max\": {\"field\": \"lines\"}}\n }\n }\n }\n }\n)\n\n```\n\n\u4e0b\u9762\u662f\u4f7f\u7528Elasticsearch_parse\u7684\u7528\u6cd5,\u8981\u591a\u7b80\u5355\u5c31\u591a\u7b80\u5355\n\n```\nfrom elasticsearch_parse import Search, Q\n\ns = Search(index=\"my-index\") \\\n .filter(\"term\", blog=\"xiaorui.cc\") \\\n .query(\"match\", author=\"ruifengyun\") \\\n .query(~Q(\"match\", face=\"good\"))\n\ns.aggs.bucket('per_tag', 'terms', field='tags')\n\nresponse = s.execute()\n```\n\u6211\u4eec\u5f97\u5230\u7684\u7ed3\u679c\u662f:\n```\n{\n \"query\": {\n \"filtered\": {\n \"filter\": {\n \"term\": {\n \"blog\": \"xiaorui.cc\"\n }\n },\n \"query\": {\n \"bool\": {\n \"must_not\": [\n {\n \"match\": {\n \"face\": \"good\"\n }\n }\n ],\n \"must\": [\n {\n \"match\": {\n \"author\": \"ruifengyun\"\n }\n }\n ]\n }\n }\n }\n },\n \"aggs\": {\n \"per_tag\": {\n \"terms\": {\n \"field\": \"tags\"\n }\n }\n }\n}\n```\n\n\u6211\u4eec\u628a\u8bed\u6cd5\u7684\u7528\u6cd5\u7ed9\u8fc7\u4e00\u904d.\n```\ns = search.Search()\n```\n\n\u901a\u8fc7match\u67e5\u8be2,f\u5b57\u6bb5\u503c\u4e3a55\u7684\u6570\u636e\n```\ns.query('match', f=55)\n```\n\n\u65f6\u95f4\u8303\u56f4\n```\ns.query('range', ** {'@timestamp': {'lt': 'now'}})\n```\n\n\u5916\u56f4\u7684size\u7684\u63a7\u5236 \n```\ns = s.query('match', f=42)\ns[3].to_dict() {'query': {'match_all': {}}, 'from': 3, 'size': 1}\n```\n\n```\nassert s.to_dict(size=10) == {\"query\": {\"match\": {'f': 42}}, \"size\": 10}\n```\n\n\u5d4c\u5165\u5185\u90e8size\u63a7\u5236\n```\ns = search.Search.from_dict({\"size\": 5})\nassert {\n \"query\": {\"match_all\": {}},\n \"size\": 5\n} == s.to_dict()\n```\n\n\u5bf9\u4e8eaggs\u7684\u805a\u5408\u7684\u4f7f\u7528\n```\ns = s.query('match', f=42)\nassert {\"query\": {\"match\": {'f': 42}}} == s.to_dict()\nassert {\"query\": {\"match\": {'f': 42}}, \"size\": 10} == s.to_dict(size=10)\ns.aggs.bucket('per_tag', 'terms', field='f').metric('max_score', 'max', field='score')\nd = {\n 'aggs': {\n 'per_tag': {\n 'terms': {'field': 'f'},\n 'aggs': {'max_score': {'max': {'field': 'score'}}}\n }\n }\n```\n\n\n...", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://xiaorui.cc", "keywords": "elasticsearch_parse,fengyun", "license": "MIT", "maintainer": null, "maintainer_email": null, "name": "elasticsearch_parse", "package_url": "https://pypi.org/project/elasticsearch_parse/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/elasticsearch_parse/", "project_urls": { "Download": "UNKNOWN", "Homepage": "http://xiaorui.cc" }, "release_url": "https://pypi.org/project/elasticsearch_parse/2.0/", "requires_dist": null, "requires_python": null, "summary": "elasticsearch parse", "version": "2.0" }, "last_serial": 1794066, "releases": { "1.0": [ { "comment_text": "", "digests": { "md5": "5cdeba873a02903eff31c42b22d76603", "sha256": "4ff63a60744ad01ffaad3c237fb0d64f61aa1754f32a7634857746c39943380c" }, "downloads": -1, "filename": "elasticsearch_parse-1.0.tar.gz", "has_sig": false, "md5_digest": "5cdeba873a02903eff31c42b22d76603", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17496, "upload_time": "2015-10-30T16:59:09", "url": "https://files.pythonhosted.org/packages/dc/d3/3952c3ebe169b03d37ce31a3134d84449dfcb43e8ac5eae67116d131ffa4/elasticsearch_parse-1.0.tar.gz" } ], "1.5": [ { "comment_text": "", "digests": { "md5": "6e75c0c7416e43e0fec636f6408963f1", "sha256": "7073d2acf4844862cc6cfc48f46bf60c2cabc573c60de8a2a85ae42ccdb5a92a" }, "downloads": -1, "filename": "elasticsearch_parse-1.5.tar.gz", "has_sig": false, "md5_digest": "6e75c0c7416e43e0fec636f6408963f1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17612, "upload_time": "2015-10-30T17:03:35", "url": "https://files.pythonhosted.org/packages/53/6b/6c8a4aed16f8e2e717ff667cdefcceadd37829411763c55fea6bfa957cb4/elasticsearch_parse-1.5.tar.gz" } ], "2.0": [ { "comment_text": "", "digests": { "md5": "bf5f4c60b582afc362bcfc0c6afa52f3", "sha256": "400f747dccff5f18cdd69dc89d4e1554e03eed87b3ba832e1df5b2f4e02d6c98" }, "downloads": -1, "filename": "elasticsearch_parse-2.0.tar.gz", "has_sig": false, "md5_digest": "bf5f4c60b582afc362bcfc0c6afa52f3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18118, "upload_time": "2015-10-30T17:29:48", "url": "https://files.pythonhosted.org/packages/7a/4c/a7b432b636f14adf57047a24d08db439b053f53685de7d05929db2a55273/elasticsearch_parse-2.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "bf5f4c60b582afc362bcfc0c6afa52f3", "sha256": "400f747dccff5f18cdd69dc89d4e1554e03eed87b3ba832e1df5b2f4e02d6c98" }, "downloads": -1, "filename": "elasticsearch_parse-2.0.tar.gz", "has_sig": false, "md5_digest": "bf5f4c60b582afc362bcfc0c6afa52f3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18118, "upload_time": "2015-10-30T17:29:48", "url": "https://files.pythonhosted.org/packages/7a/4c/a7b432b636f14adf57047a24d08db439b053f53685de7d05929db2a55273/elasticsearch_parse-2.0.tar.gz" } ] }