{"id":8734,"date":"2023-05-16T17:41:39","date_gmt":"2023-05-16T09:41:39","guid":{"rendered":"\/?p=8734"},"modified":"2023-05-16T17:41:39","modified_gmt":"2023-05-16T09:41:39","slug":"es-python%e6%9f%a5%e8%af%a2%e8%af%ad%e5%8f%a5","status":"publish","type":"post","link":"\/?p=8734","title":{"rendered":"ES-Python\u67e5\u8be2\u8bed\u53e5"},"content":{"rendered":"<h2>1. \u57fa\u672c\u67e5\u8be2<\/h2>\n<pre><code class=\"language-python\">Copyfrom elasticsearch import Elasticsearch\n\n# \u5efa\u7acb\u8fde\u63a5\nes = Elasticsearch( \n    hosts={&#039;192.168.1.120&#039;, &#039;192.168.1.123&#039;},  # \u5730\u5740\n    timeout=3600  # \u8d85\u65f6\u65f6\u95f4\n)\n\n#\u9ed8\u8ba4\u67e5\u8be2\uff0c\u6ca1\u6709\u4efb\u4f55\u7b5b\u9009\u6761\u4ef6\uff0c\u9ed8\u8ba4\u663e\u793a\u524d10\u6761\u6570\u636e\u7684\u6240\u6709\u4fe1\u606f\nes.search(index=&#039;test&#039;)  # index\uff1a\u9009\u62e9\u6570\u636e\u5e93<\/code><\/pre>\n<h2>2. \u8fc7\u6ee4\u8def\u5f84<\/h2>\n<p>\u901a\u8fc7\u6307\u5b9a\u5b57\u6bb5\uff0c\u53ea\u663e\u793a\u6570\u636e\u7684\u6307\u5b9a\u5b57\u6bb5\u4fe1\u606f\uff08\u9ed8\u8ba4\u663e\u793a\u6240\u6709\u5b57\u6bb5\u7684\u4fe1\u606f\uff09<\/p>\n<pre><code class=\"language-python\">Copy#\u5b9a\u4e49\u8fc7\u6ee4\u5b57\u6bb5\uff0c\u6700\u7ec8\u53ea\u663e\u793a\u6b64\u6b64\u6bb5\u4fe1\u606f\nfilter_path=[&#039;hits.hits._source.ziduan1&#039;,  # \u5b57\u6bb51\n             &#039;hits.hits._source.ziduan2&#039;]  # \u5b57\u6bb52\n\nes.search(index=&#039;test&#039;, filter_path=filter_path)  # \u6307\u5b9a\u5b57\u6bb5\uff1afilter_path<\/code><\/pre>\n<h2>3. \u5207\u7247\u67e5\u8be2<\/h2>\n<p>\u901a\u8fc7\u5236\u5b9abody\uff0c\u8fdb\u884c\u6761\u4ef6\u67e5\u8be2. \u7c7b\u4f3c\u4e8emysql\u4e2d\u7684WHERE.<\/p>\n<pre><code class=\"language-python\">Copy# body\u6307\u5b9a\u67e5\u8be2\u6761\u4ef6\nbody = {\n    &#039;from&#039;: 0,  # \u4ece0\u5f00\u59cb\n    &#039;size&#039;: 20  \n# \u53d620\u4e2a\u6570\u636e\u3002\u7c7b\u4f3cmysql\u4e2d\u7684limit 0, 20\u3002 \u6ce8\uff1asize\u53ef\u4ee5\u5728es.search\u4e2d\u6307\u5b9a\uff0c\u4e5f\u53ef\u4ee5\u5728\u6b64\u6307\u5b9a\uff0c\u9ed8\u8ba4\u662f10\n}\n\n# \u5b9a\u4e49\u8fc7\u6ee4\u5b57\u6bb5\uff0c\u6700\u7ec8\u53ea\u663e\u793a\u6b64\u6b64\u6bb5\u4fe1\u606f\nfilter_path=[&#039;hits.hits._source.ziduan1&#039;,  # \u5b57\u6bb51\n             &#039;hits.hits._source.ziduan2&#039;]  # \u5b57\u6bb52\n\nes.search(index=&#039;test&#039;, filter_path=filter_path, body=body)  # \u6307\u5b9a\u67e5\u8be2\u6761\u4ef6<\/code><\/pre>\n<h2>4. \u6a21\u7cca\u67e5\u8be2match<\/h2>\n<pre><code class=\"language-python\">Copybody = {\n    &#039;query&#039;: {  # \u67e5\u8be2\u547d\u4ee4\n        &#039;match&#039;: {  # \u67e5\u8be2\u65b9\u6cd5\uff1a\u6a21\u7cca\u67e5\u8be2\uff08\u4f1a\u88ab\u5206\u8bcd\uff09\u3002\u6bd4\u5982\u6b64\u4ee3\u7801\uff0c\u4f1a\u67e5\u5230\u53ea\u5305\u542b\uff1a\u201c\u6211\u7231\u4f60\u201d\uff0c \u201c\u4e2d\u56fd\u201d\u7684\u5185\u5bb9\n            &#039;ziduan1&#039;: &#039;\u6211\u7231\u4f60\u4e2d\u56fd&#039;\n        }\n    },\n\u3000\u3000&#039;size&#039;: 20  # \u4e0d\u6307\u5b9a\u9ed8\u8ba4\u662f10\uff0c\u6700\u5927\u503c\u4e0d\u8d85\u8fc710000\uff08\u53ef\u4ee5\u4fee\u6539\uff0c\u4f46\u662f\u540c\u65f6\u4f1a\u589e\u52a0\u6570\u636e\u5e93\u538b\u529b\uff09\n}\n\n# size\u7684\u53e6\u4e00\u79cd\u6307\u5b9a\u65b9\u6cd5\nes.search(index=&#039;test&#039;, filter_path=filter_path, body=body, size=200)  # \u6307\u5b9asize\uff0c\u9ed8\u8ba4\u662f10<\/code><\/pre>\n<h2>5. \u6a21\u7cca\u67e5\u8be2match_phrase<\/h2>\n<pre><code class=\"language-python\">Copybody = {\n    &#039;query&#039;: {  # \u67e5\u8be2\u547d\u4ee4\n        &#039;match_phrase&#039;: {  # \u67e5\u8be2\u65b9\u6cd5\uff1a\u6a21\u7cca\u67e5\u8be2\uff08\u4e0d\u4f1a\u88ab\u5206\u8bcd\uff09\u3002\u4f1a\u67e5\u5230\u5305\u542b\uff1a\u201c\u6211\u7231\u4f60\u4e2d\u56fd\u201d\u7684\u5185\u5bb9\n            &#039;ziduan1&#039;: &#039;\u6211\u7231\u4f60\u4e2d\u56fd&#039;\n        }\n    }\n}<\/code><\/pre>\n<p>\u6ce8\uff1a\u5185\u5bb9\u4e2d\u7684\u4e0b\u5212\u7ebf\u7b49\u6807\u70b9\u7b26\u53f7\u4f1a\u88ab\u5ffd\u7565\uff0c\u6709\u4e0e\u6ca1\u6709\u7684\u6548\u679c\u4e00\u6837<\/p>\n<h2>6. \u7cbe\u51c6\u5355\u503c\u67e5\u8be2term<\/h2>\n<p>\u53ea\u80fd\u67e5\u8be2\u4e00\u4e2a\u5b57\u6bb5\uff0c\u4e14\u53ea\u80fd\u6307\u5b9a\u4e00\u4e2a\u503c. \u7c7b\u4f3c\u4e8emysql\u4e2d\u7684 where ziduan='test'<\/p>\n<pre><code class=\"language-python\">Copybody ={   \n    &#039;query&#039;:{\n        &#039;term&#039;:{\n            &#039;ziduan1.keyword&#039;: &#039;\u6211\u7231\u4f60\u4e2d\u56fd&#039;  # \u67e5\u8be2\u5185\u5bb9\u7b49\u4e8e\u201c\u6211\u7231\u4f60\u4e2d\u56fd\u7684\u201d\u7684\u6570\u636e\u3002\u67e5\u8be2\u4e2d\u6587\uff0c\u5728\u5b57\u6bb5\u540e\u9762\u9700\u8981\u52a0\u4e0a.keyword\n\u3000\u3000\u3000\u3000     # &#039;ziduan2&#039;: &#039;I love China&#039;\n        }\n    }\n}<\/code><\/pre>\n<h2>7. \u7cbe\u786e\u591a\u503c\u67e5\u8be2terms<\/h2>\n<p>\u53ea\u80fd\u67e5\u8be2\u4e00\u4e2a\u5b57\u6bb5\uff0c\u4f46\u53ef\u4ee5\u540c\u65f6\u6307\u5b9a\u591a\u4e2a\u503c\u3002\u7c7b\u4f3c\u4e8emysql\u4e2d\u7684where ziduan in a,b,c...<\/p>\n<pre><code class=\"language-python\">Copybody ={   \n    &quot;query&quot;:{\n        &quot;terms&quot;:{\n            &quot;ziduan1&quot;: [&quot;\u6211\u7231\u4f60\u4e2d\u56fd&quot;, &quot;I love China&quot;]  # \u67e5\u8be2ziduan1=a\u6216=b...\u7684\u6570\u636e\n        }\n    }\n}<\/code><\/pre>\n<h2>8. \u591a\u5b57\u6bb5\u67e5\u8be2multi_match<\/h2>\n<pre><code class=\"language-python\">Copy# \u67e5\u8be2\u591a\u4e2a\u5b57\u6bb5\u4e2d\u90fd\u5305\u542b\u6307\u5b9a\u5185\u5bb9\u7684\u6570\u636e\nbody = {\n    &quot;query&quot;:{\n        &quot;multi_match&quot;:{\n            &quot;query&quot;:&quot;\u6211\u7231\u4f60\u4e2d\u56fd&quot;,  # \u6307\u5b9a\u67e5\u8be2\u5185\u5bb9\uff0c\u6ce8\u610f\uff1a\u4f1a\u88ab\u5206\u8bcd\n            &quot;fields&quot;:[&quot;ziduan1&quot;, &quot;ziduan2&quot;]  # \u6307\u5b9a\u5b57\u6bb5\n        }\n    }\n}<\/code><\/pre>\n<h2>9. \u524d\u7f00\u67e5\u8be2prefix<\/h2>\n<pre><code class=\"language-python\">Copybody = {\n    &#039;query&#039;: {\n        &#039;prefix&#039;: { \n            &#039;ziduan.keyword&#039;: &#039;\u6211\u7231\u4f60&#039;  # \u67e5\u8be2\u524d\u7f00\u662f\u6307\u5b9a\u5b57\u7b26\u4e32\u7684\u6570\u636e\n        }\n    }\n}\n# \u6ce8\uff1a\u82f1\u6587\u4e0d\u9700\u8981\u52a0keyword<\/code><\/pre>\n<h2>10. \u901a\u914d\u7b26\u67e5\u8be2wildcard<\/h2>\n<p>\u53ea\u80fd\u67e5\u8be2\u5355\u4e00\u683c\u5f0f\u7684\uff08\u90fd\u662f\u82f1\u6587\u5b57\u7b26\u4e32\uff0c\u6216\u8005\u90fd\u662f\u6c49\u8bed\u5b57\u7b26\u4e32\uff09\u3002\u4e24\u8005\u6df7\u5408\u4e0d\u80fd\u67e5\u8be2\u51fa\u6765\u3002<\/p>\n<pre><code class=\"language-python\">Copybody = {\n    &#039;query&#039;: {\n        &#039;wildcard&#039;: {\n            &#039;ziduan1.keyword&#039;: &#039;?\u7231\u4f60\u4e2d*&#039;  # ?\u4ee3\u8868\u4e00\u4e2a\u5b57\u7b26\uff0c*\u4ee3\u88680\u4e2a\u6216\u591a\u4e2a\u5b57\u7b26\n        }\n    }\n}<\/code><\/pre>\n<h2>11. \u6b63\u5219\u67e5\u8be2regexp<\/h2>\n<pre><code class=\"language-python\">Copybody = {\n    &#039;query&#039;: {\n        &#039;regexp&#039;: {\n            &#039;ziduan1&#039;: &#039;W[0-9].+&#039;   # \u4f7f\u7528\u6b63\u5219\u8868\u8fbe\u5f0f\u67e5\u8be2\n        }\n    }\n}<\/code><\/pre>\n<h2>12. \u591a\u6761\u4ef6\u67e5\u8be2bool<\/h2>\n<pre><code class=\"language-python\">Copy# must\uff1a[] \u5404\u6761\u4ef6\u4e4b\u95f4\u662fand\u7684\u5173\u7cfb\nbody = {\n        &quot;query&quot;:{\n            &quot;bool&quot;:{\n                &#039;must&#039;: [{&quot;term&quot;:{&#039;ziduan1.keyword&#039;: &#039;\u6211\u7231\u4f60\u4e2d\u56fd&#039;}},\n                         {&#039;terms&#039;: {&#039;ziduan2&#039;: [&#039;I love&#039;, &#039;China&#039;]}}]\n            }\n        }\n    }\n\n# should: [] \u5404\u6761\u4ef6\u4e4b\u95f4\u662for\u7684\u5173\u7cfb\nbody = {\n        &quot;query&quot;:{\n            &quot;bool&quot;:{\n                &#039;should&#039;: [{&quot;term&quot;:{&#039;ziduan1.keyword&#039;: &#039;\u6211\u7231\u4f60\u4e2d\u56fd&#039;}},\n                         {&#039;terms&#039;: {&#039;ziduan2&#039;: [&#039;I love&#039;, &#039;China&#039;]}}]\n            }\n        }\n    }\n\n# must_not\uff1a[]\u5404\u6761\u4ef6\u90fd\u4e0d\u6ee1\u8db3\nbody = {\n        &quot;query&quot;:{\n            &quot;bool&quot;:{\n                &#039;must_not&#039;: [{&quot;term&quot;:{&#039;ziduan1.keyword&#039;: &#039;\u6211\u7231\u4f60\u4e2d\u56fd&#039;}},\n                         {&#039;terms&#039;: {&#039;ziduan2&#039;: [&#039;I love&#039;, &#039;China&#039;]}}]\n            }\n        }\n    }\n\n# bool\u5d4c\u5957bool\n# ziduan1\u3001ziduan2\u6761\u4ef6\u5fc5\u987b\u6ee1\u8db3\u7684\u524d\u63d0\u4e0b\uff0cziduan3\u3001ziduan4\u6ee1\u8db3\u4e00\u4e2a\u5373\u53ef\nbody = {\n    &quot;query&quot;:{\n        &quot;bool&quot;:{\n            &quot;must&quot;:[{&quot;term&quot;:{&quot;ziduan1&quot;:&quot;China&quot;}},  #  \u591a\u4e2a\u6761\u4ef6\u5e76\u5217  \uff0c\u6ce8\u610f\uff1amust\u540e\u9762\u662f[{}, {}],[]\u91cc\u9762\u7684\u6bcf\u4e2a\u6761\u4ef6\u5916\u9762\u6709\u4e2a{}\n                    {&quot;term&quot;:{&quot;ziduan2.keyword&quot;: &#039;\u6211\u7231\u4f60\u4e2d\u56fd&#039;}},\n                    {&#039;bool&#039;: {\n                        &#039;should&#039;: [\n                            {&#039;term&#039;: {&#039;ziduan3&#039;: &#039;Love&#039;}},\n                            {&#039;term&#039;: {&#039;ziduan4&#039;: &#039;Like&#039;}}\n                        ]\n                    }}\n            ]\n        }\n    }\n}<\/code><\/pre>\n<h2>13. \u5b58\u5728\u5b57\u6bb5\u67e5\u8be2exists<\/h2>\n<pre><code class=\"language-python\">Copybody = {\n    &#039;query&#039;: {\n        &#039;exists&#039;: {&#039;field&#039;: &#039;ziduan1&#039;}  # \u67e5\u8be2\u5b58\u5728ziduan1\u7684\u6570\u636e\n    }\n}\n\n# exists\u3001bool\u5d4c\u5957\u67e5\u8be2\n# \u5b58\u5728ziduan1\u7684\u60c5\u51b5\u4e0b\uff0cziduan2\u7684\u503c\u5fc5\u987b\u4e3a\u6307\u5b9a\u5b57\u6bb5\nbody = {\n    &quot;query&quot;:{\n        &quot;bool&quot;:{\n            &quot;must&quot;:[{&#039;exists&#039;: {&#039;field&#039;: &#039;ziduan1&#039;}},\n                    {&quot;term&quot;:{&quot;ziduan2.keyword&quot;: &#039;\u6211\u7231\u4f60\u4e2d\u56fd&#039;}},\n                   ]\n        }\n    }\n}<\/code><\/pre>\n<h2>14. \u5927\u4e8e\u5c0f\u4e8e\u67e5\u8be2<\/h2>\n<pre><code class=\"language-python\">Copybody = {\n        &quot;query&quot;: {\n            &quot;range&quot;: {\n                &quot;ziduan1&quot;:{\n                    &quot;gte&quot;: 3,  # \u5927\u4e8e\n                    &quot;lt&quot;: 20  # \u5c0f\u4e8e\n                }\n            }\n        }\n    }<\/code><\/pre>\n<h2>15. json\u6570\u636e\u67e5\u8be2nested<\/h2>\n<pre><code class=\"language-python\">Copybody = {\n    &#039;query&#039;: {\n        &#039;nested&#039;: {\n            &#039;path&#039;: &#039;ziduan1&#039;,  # \u6307\u5b9ajson\u6570\u636e\u7684\u5b57\u6bb5\n            &#039;query&#039;: {  # \u6307\u5b9a\u67e5\u8be2\u65b9\u5f0f\n                &#039;term&#039;: {&#039;ziduan1.ziduan2&#039;: &#039;\u6211\u7231\u4f60\u4e2d\u56fd&#039;}  # \u6839\u636eziduan1\u91cc\u9762\u7684ziduan2\u6570\u636e\u67e5\u8be2\n            }\n        }\n    }\n}\n\n# nest\u3001bool\u5d4c\u5957\u67e5\u8be2\nbody = {\n    &#039;query&#039;: {\n        &#039;bool&#039;: {\n            &#039;must&#039;: [\n                {&#039;term&#039;:{&quot;ziduan3&quot; : &quot;I love China&quot;}},\n                {&#039;nested&#039;: {  # json\u67e5\u8be2\n                    &#039;path&#039;: &#039;ziduan1&#039;,\n                    &#039;query&#039;: {  # \u6307\u5b9a\u67e5\u8be2\u65b9\u5f0f\n                        &#039;term&#039;: {&#039;ziduan1.ziduan2&#039;: &#039;\u6211\u7231\u4f60\u4e2d\u56fd&#039;}  # \u6839\u636eziduan1\u91cc\u9762\u7684ziduan2\u6570\u636e\u67e5\u8be2\n                    }\n                }}\n            ]\n        }\n    }\n}<\/code><\/pre>\n<h2>16. \u6392\u5e8fsort<\/h2>\n<pre><code class=\"language-python\">Copybody = {\n    &quot;query&quot;:{  # \u6307\u5b9a\u6761\u4ef6\uff0c\u53ef\u4ee5\u4f7f\u7528\u4ee5\u4e0a\u7684\u4efb\u4f55\u6761\u4ef6\u7b49\u67e5\u8be2\u6570\u636e\u3002\u7136\u540e\u518d\u5bf9\u7b26\u5408\u6761\u4ef6\u7684\u6570\u636e\u8fdb\u884c\u6392\u5e8f\n        &quot;match_all&quot;:{}\n    },\n    &quot;sort&quot;:{  # \u5bf9\u6ee1\u8db3\u6761\u4ef6\u7684\u6570\u636e\u6392\u5e8f\n        &quot;age&quot;:{                 # \u6839\u636eage\u5b57\u6bb5\u6392\u5e8f\n            &quot;order&quot;:&quot;asc&quot;       # asc\u5347\u5e8f\uff0cdesc\u964d\u5e8f\n        }\n    }\n}\n\n# \u591a\u5b57\u6bb5\u6392\u5e8f\uff0c\u6ce8\u610f\u987a\u5e8f\uff01\u5199\u5728\u524d\u9762\u7684\u4f18\u5148\u6392\u5e8f\nbody = {\n    &quot;query&quot;:{\n        &quot;match_all&quot;:{}\n    },\n    &quot;sort&quot;:[{\n        &quot;age&quot;:{\n            &quot;order&quot;:&quot;asc&quot;      # \u5148\u6839\u636eage\u5347\u5e8f\n        }},\n        {&quot;name&quot;:{               # \u540e\u6839\u636ename\u5b57\u6bb5\u5347\u5e8f\u6392\u5e8f\n            &quot;order&quot;:&quot;asc&quot;      # asc\u5347\u5e8f\uff0cdesc\u964d\u5e8f\n        }}],\n}<\/code><\/pre>\n<h2>17. \u7ffb\u9875\u67e5\u8be2scroll<\/h2>\n<p>\u6570\u636e\u91cf\u5c0f\u53ef\u4ee5\u4f7f\u7528\u6b64\u65b9\u6cd5\uff0c\u6570\u636e\u91cf\u5927\u63a8\u8350\u4f7f\u7528search_after\u65b9\u6cd5<\/p>\n<pre><code class=\"language-python\">Copybody={\n    &#039;query&#039;:{&#039;match_all&#039;: {}},\n    &#039;sort&#039;: {&#039;zidan6&#039;: &#039;asc&#039;},  # \u7ffb\u9875\u9700\u8981\u5148\u4f7f\u7528sort\u6392\u5e8f\uff0c\u4e0esearch_after\u7c7b\u4f3c\n}\n\n# size\uff1a\u8bbe\u7f6e\u4e00\u9875\u6570\u636e\u91cf\nresult = es.search(index=&#039;pv91&#039;, scroll=&#039;1m&#039;, size=5, body=body)\n# \u83b7\u53d6\u603b\u7684\u6570\u636e\u91cf\uff0c\u7528\u4e8e\u5f97\u5230\u603b\u7684\u6570\u636e\u9875\u6570\ntotal = result[&#039;hits&#039;][&#039;total&#039;]\n# \u83b7\u53d6\u521d\u59cb\u7ffb\u9875id\nscrid = result[&#039;_scroll_id&#039;]\n# \u7b2c\u4e00\u9875\u7684\u6570\u636e\nresult = es.search(index=&#039;test&#039;,size=5, body=body, filter_path=[&#039;hits.hits._source.ziduan1&#039;, &#039;hits.hits._source.ziduan2.ziduan2_1&#039;])\n\n# \u5f00\u59cb\u7ffb\u9875\nfor i in range(5):  #\u7ffb5\u9875\n    print(result, &#039;\\n&#039;)\n    print(&#039;*&#039; * 50, &#039;\u7b2c{}\u9875&#039;.format(i), &#039;*&#039; * 50)\n    result = es.scroll(scroll_id=scrid, scroll=&#039;1m&#039;, filter_path=[&#039;hits.hits._source.ziduan1&#039;, &#039;hits.hits._source.ziduan2.ziduan2_1&#039;])<\/code><\/pre>\n<h2>18. \u7ffb\u9875\u67e5\u8be2search_after<\/h2>\n<p>\u63a8\u8350\u6b64\u65b9\u6cd5<\/p>\n<pre><code class=\"language-python\">Copycontent_size = 3000  # \u8bbe\u7f6e\u4e00\u9875\u7684\u6570\u636e\u91cf\nsize_cont = content_size\nnext_id = 0  # \u521d\u59cb\u5316next_id\uff0c\u6bcf\u6b21\u5faa\u73af\u662f\u4ece  \u6b64\u6570\u636e \u4e4b\u540e\u7684\u7b2c1\u4e2a\u6570\u636e\u5f00\u59cb\nwhile size_cont == content_size:\n    body = {\n        &quot;query&quot;: {\n            &quot;range&quot;: {\n                &quot;update_time&quot;:{\n                    &quot;gte&quot;: &quot;2019-10-14&quot;\n                }\n            }\n        },\n        &#039;sort&#039;: {&#039;ziduan2&#039;: &#039;asc&#039;},  # \u4ee5ziduan2\u4e3anext_id\uff0c\u9700\u8981\u5148\u5bf9\u5176\u8fdb\u884c\u6392\u5e8f\n        &#039;search_after&#039;: [next_id],  # \u4ece\u6b64\u6570\u636e\u4e4b\u540e\u7684\u7b2c1\u4e2a\u6570\u636e\u5f00\u59cb\uff0c\u4f46\u4e0d\u5305\u542b\u6b64\u6570\u636e\n        &#039;size&#039;: content_size  # \u6307\u5b9a\u5f53\u524d\u9875\u6570\u636e\u91cf\n    }\n    filter_path = [\n        &#039;hits.hits._source.ziduan1&#039;,\n        &#039;hits.hits._source.ziduan2&#039;\n    ]\n    rt = es.search(index=&#039;pv1&#039;, body=body, filter_path=filter_path)[&#039;hits&#039;][&#039;hits&#039;]\n    size_cont = len(rt)  # \u66f4\u65b0\u5faa\u73af\u6761\u4ef6\uff1a\u82e5\u6570\u636e\u91cf\u4e0d\u7b49\u4e8e\u6307\u5b9a\u7684\u6570\u636e\u91cf\uff0c\u8bf4\u660e\u904d\u5386\u5230\u6700\u540e\u7684\u4e00\u9875\u6570\u636e\u4e86\n    for result in rt:\n        try:\n            app_date = result[&#039;_source&#039;][&#039;ziduan1&#039;]\n        except:\n            continue\n        try:\n            ziduan2 = result[&#039;_source&#039;][&#039;ziduan2&#039;]\n            next_id = ziduan2  # \u66f4\u65b0next_id\n        except:\n            app_text = &#039;&#039;<\/code><\/pre>\n<h2>19. \u805a\u5408\u67e5\u8be2agroup<\/h2>\n<pre><code class=\"language-python\">Copy# \u7edf\u8ba1\u7b26\u5408\u6761\u4ef6\u7684\u6307\u5b9a\u5b57\u6bb5\u7684\u6570\u636e\u4e2d\uff0c\u5404\u6570\u636e\u7684\u4e2a\u6570\nbody = {\n#     &#039;query&#039;: {\n#         &#039;match_all&#039;: {}\n#     },\n    &#039;size&#039;: 0,  # \u8bbe\u7f6e0\u4e3a\u6761\u4ef6\u67e5\u8be2\u540e\u7684\u6570\u636e\u663e\u793a\u6761\u6570\uff0c\u9ed8\u8ba4\u663e\u793a10\u6761\n    &#039;aggs&#039;:{\n        &#039;num_ipcr&#039;: {  # \u81ea\u5b9a\u4e49buckets\n            &#039;terms&#039;: {\n                &#039;field&#039;: &#039;ziduan1&#039;,  # \u9700\u8981\u67e5\u627e\u7684\u5b57\u6bb5\n                &#039;size&#039;: 10,  # \u8bbe\u7f6e\u805a\u5408\u6570\u636e\u663e\u793a\u6761\u6570\n            }\n        }\n    },\n}\n\n# \u5d4c\u5957\u805a\u5408\uff1a\u6839\u636e\u805a\u5408\u540e\u7684\u6570\u636e\u5927\u5c0f\u518d\u8fdb\u884c\u805a\u5408\nbody = {\n    &#039;size&#039;: 0,  # \u8bbe\u7f6e0\u4e3a\u6761\u4ef6\u67e5\u8be2\u540e\u7684\u6570\u636e\u663e\u793a\u6761\u6570\uff0c\u9ed8\u8ba4\u663e\u793a10\u6761\n    &quot;aggs&quot;: {\n        &quot;agroup&quot;: {\n            &quot;nested&quot;: {&quot;path&quot;: &quot;ziduan1&quot;},  # \u9009\u62e9ziduan1\u91cc\u9762\u7684\u6570\u636e\u91cf\u518d\u8fdb\u884c\u805a\u5408\n            &quot;aggs&quot;: {\n                &quot;de_inventor&quot;: {\n                    &quot;terms&quot;: {&quot;field&quot;: &quot;ziduan1.ziduan1_1.keyword&quot;, &quot;size&quot;: 200000}\n                }\n            },\n        },\n    },\n}\n\n# \u53bb\u91cd\u7edf\u8ba1\nbody = {\n    &#039;size&#039;: 0, \n    &#039;aggs&#039;: {\n        &#039;discount_ipcr&#039;: {\n            &#039;cardinality&#039;:{  # \u53bb\u91cd\u7edf\u8ba1\n                &#039;field&#039;: &#039;ziduan1&#039;,\n                &#039;precision_threshold&#039;: 100 # \u4fdd\u8bc1100\u4e2a\u4ee5\u5185\u51c6\u786e\u7387\u63a5\u8fd1100%\uff0c\u6bcf\u4e2a\u7c7b\u522b\u4f1a\u5360\u7528100\u5b57\u8282\u7684\u5185\u5b58\n            },\n        },\n    }\n}\n# \u7ed3\u679c\u8fd4\u56de\u503c\u8bf4\u660e\n&quot;&quot;&quot;\ndoc_count_error_upper_bound: \u8868\u793a\u6ca1\u6709\u5728\u8fd9\u6b21\u805a\u5408\u4e2d\u8fd4\u56de\u3001\u4f46\u662f\u53ef\u80fd\u5b58\u5728\u7684\u6f5c\u5728\u805a\u5408\u7ed3\u679c\nsum_other_doc_count\uff1a\u8868\u793a\u8fd9\u6b21\u805a\u5408\u4e2d\u6ca1\u6709\u7edf\u8ba1\u5230\u7684\u6587\u6863\u6570\nbuckets\uff1a\u805a\u5408\u7ed3\u679c\uff0c\u9ed8\u8ba4\u7531\u9ad8\u5230\u4f4e\u6392\u5217\u3002key\u8868\u793a\u805a\u5408\u5143\u7d20\u7684\u503c\uff0cdoc_count\u8868\u793a\u5143\u7d20\u51fa\u73b0\u7684\u6b21\u6570\u3002\u6ce8\u610f\uff0c\u8fd9\u91cc\u7684doc_count\u4e5f\u662f\u4e0d\u51c6\u786e\u7684\n&quot;&quot;&quot;<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>1. \u57fa\u672c\u67e5\u8be2 Copyfrom elasticsearch import Elasticsearch # \u5efa\u7acb\u8fde\u63a5 es = Elas   \u2026 &#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"ngg_post_thumbnail":0},"categories":[95],"tags":[160],"_links":{"self":[{"href":"\/index.php?rest_route=\/wp\/v2\/posts\/8734"}],"collection":[{"href":"\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=8734"}],"version-history":[{"count":1,"href":"\/index.php?rest_route=\/wp\/v2\/posts\/8734\/revisions"}],"predecessor-version":[{"id":8735,"href":"\/index.php?rest_route=\/wp\/v2\/posts\/8734\/revisions\/8735"}],"wp:attachment":[{"href":"\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=8734"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=8734"},{"taxonomy":"post_tag","embeddable":true,"href":"\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=8734"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}