{"id":2072,"date":"2023-04-01T21:43:37","date_gmt":"2023-04-01T13:43:37","guid":{"rendered":"https:\/\/www.appblog.cn\/?p=2072"},"modified":"2023-04-06T16:01:15","modified_gmt":"2023-04-06T08:01:15","slug":"elasticsearch-7-installation-and-learning-record","status":"publish","type":"post","link":"https:\/\/www.appblog.cn\/index.php\/2023\/04\/01\/elasticsearch-7-installation-and-learning-record\/","title":{"rendered":"ElasticSearch 7 \u5b89\u88c5\u53ca\u5b66\u4e60\u8bb0\u5f55"},"content":{"rendered":"<h2>\u4ecedocker\u542f\u52a8<\/h2>\n<p>ElasticSearch: <a target=\"_blank\" rel=\"noopener\" href=\"https:\/\/hub.docker.com\/_\/elasticsearch?tab=description\">https:\/\/hub.docker.com\/_\/elasticsearch?tab=description<\/a><br \/>\nKibana: <a target=\"_blank\" rel=\"noopener\" href=\"https:\/\/hub.docker.com\/_\/kibana?tab=description\">https:\/\/hub.docker.com\/_\/kibana?tab=description<\/a><\/p>\n<p><!-- more --><\/p>\n<pre><code class=\"language-bash\">\/\/ \u521b\u5efa\u4e00\u4e2anetwork\ndocker network create es\n\n\/\/ \u521b\u5efaES\ndocker run -d --name elasticsearch --net es -p 9200:9200 -p 9300:9300 -e &quot;discovery.type=single-node&quot; elasticsearch:7.8.1\n\n\/\/ \u521b\u5efaKIBANA\ndocker run -d --name kibana --net es -p 5601:5601 kibana:7.8.1\n\n\/\/ \u542f\u52a8\ndocker start elasticsearch kibana\n\n\/\/ \u505c\u6b62\ndocker stop elasticsearch kibana<\/code><\/pre>\n<h2>\u6df1\u5165\u529f\u80fd<\/h2>\n<h3>\u903b\u8f91\u8bbe\u8ba1<\/h3>\n<ul>\n<li>\u6587\u6863 document<\/li>\n<li>\u7c7b\u578b type<\/li>\n<li>\u7d22\u5f15 index<\/li>\n<\/ul>\n<h3>\u7269\u7406\u8bbe\u8ba1<\/h3>\n<p>\u4e00\u4e2aElasticSearch\u7d22\u5f15\u9ed8\u8ba4\u88ab<code>shard<\/code>\u62105\u4efd\uff0c\u6bcf\u4efd\u4e00\u4e2abackup\uff0c\u603b\u8ba110\u4efd<code>shard<\/code>\u3002\u4e00\u4e2a\u5206\u7247\u662f\u4e00\u4e2a<code>lucene<\/code>\u7d22\u5f15\u3002<\/p>\n<p><strong>\u7d22\u5f15\u8fc7\u7a0b<\/strong><\/p>\n<ol>\n<li>\u6309\u7167document id \u505ashard<\/li>\n<li>\u53d1\u9001\u5230\u5bf9\u5e94shard\u6240\u5728\u7684\u8282\u70b9<\/li>\n<li>\u7531\u4e3bshard\u53d1\u9001\u7ed9back shard<\/li>\n<li>\u7d22\u5f15\u5b8c\u6210<\/li>\n<\/ol>\n<p><strong>\u641c\u7d22\u8fc7\u7a0b<\/strong><\/p>\n<ol>\n<li>ES cluster\u6536\u5230\u8bf7\u6c42\uff0c\u5206\u6d3e\u7ed9\u5176\u4e2d\u4e00\u4e2anode<\/li>\n<li>\u901a\u8fc7round-robin\u9009\u4e2d\u4e3bshard\u548c\u526fshard\uff0c\u4f8b\u5982\uff0cshard0\u4f7f\u7528\u4e3b\uff0cshard1\u548cshard2\u4f7f\u7528\u5907<\/li>\n<li>\u5411\u9009\u4e2d\u7684shard\u5206\u53d1\u641c\u7d22\u8bf7\u6c42<\/li>\n<li>\u7531\u6700\u521d\u6536\u5230\u641c\u7d22\u8bf7\u6c42\u7684node\uff0c\u8fdb\u884c\u805a\u96c6<\/li>\n<li>\u8fd4\u56de\u641c\u7d22\u7ed3\u679c<\/li>\n<\/ol>\n<h3>\u6587\u6863\u6253\u5206<\/h3>\n<p>\u53c2\u8003\uff1a<a target=\"_blank\" rel=\"noopener\" href=\"https:\/\/zh.wikipedia.org\/zh-cn\/Tf-idf\">TF-IDF, term frequencey &#8211; inverse document frequencey<\/a><\/p>\n<p>\u5f53\u4f7f\u7528\u4e00\u4e2aterm\u8fdb\u884c\u641c\u7d22\u65f6<\/p>\n<ul>\n<li>\u5355\u4e2adocument\u4e2d\u8be5term\u51fa\u73b0\u7684\u9891\u7387\u8d8a\u9ad8\uff0cdocument\u5206\u6570\u8d8a\u9ad8<\/li>\n<li>\u6574\u4e2aindex\u4e2d\uff0cterm\u8d8a\u7a00\u6709\uff0cdocument\u5206\u6570\u8d8a\u9ad8<\/li>\n<\/ul>\n<h3>\u521b\u5efa\u7d22\u5f15<\/h3>\n<p>\u5f53\u521b\u5efa\u4e00\u4e2adocument\u7684\u65f6\u5019\uff0ces\u4f1a\u81ea\u52a8\u521b\u5efa\u7d22\u5f15\uff0cproperties\u7684type\u4f1a\u81ea\u52a8\u5224\u65ad\u5e76\u751f\u6210\u3002<\/p>\n<p><strong>About Index Type<\/strong><br \/>\n<a target=\"_blank\" rel=\"noopener\" href=\"https:\/\/www.elastic.co\/guide\/en\/elasticsearch\/reference\/current\/removal-of-types.html\">type is removed in ES 7<\/a><\/p>\n<h3>Search<\/h3>\n<h4>URL<\/h4>\n<p><code>GET \/{index}\/_search?q={match\u5b57\u6bb5}<\/code><\/p>\n<h4>\u8fd4\u56de\u7279\u5b9a\u7684field<\/h4>\n<p>ES7\u4e2d\uff0c\u9700\u8981\u4f7f\u7528 <code>_source<\/code>\uff0c\u53c2\u8003 <a target=\"_blank\" rel=\"noopener\" href=\"https:\/\/www.elastic.co\/guide\/en\/elasticsearch\/reference\/current\/search-search.html\">ES7 fields<\/a><br \/>\n<a target=\"_blank\" rel=\"noopener\" href=\"http:\/\/localhost:9200\/kibana_sample_data_ecommerce\/_search?q=EUR&amp;_source=currency,order_id\">http:\/\/localhost:9200\/kibana_sample_data_ecommerce\/_search?q=EUR&#038;_source=currency,order_id<\/a><\/p>\n<h4>\u641c\u7d22\u7ed3\u679c<\/h4>\n<p>\u8017\u65f6<\/p>\n<pre><code class=\"language-json\">&quot;took&quot;: 10,  \/\/ \u82b1\u8d39\u65f6\u95f4\uff0cms\u4e3a\u5355\u4f4d\n&quot;timed_out&quot;: false,  \/\/ \u662f\u5426\u8d85\u65f6\uff0c\u53ef\u4ee5\u901a\u8fc7\u8bbe\u7f6e timeout\u53c2\u6570\u63a7\u5236search API\u7684\u65f6\u957f<\/code><\/pre>\n<p>\u67e5\u8be2\u5206\u7247<\/p>\n<pre><code class=\"language-json\">&quot;_shards&quot;: {\n    &quot;total&quot;: 1,  \/\/ \u5171\u8ba1\u67e5\u8be2\u4e86\u591a\u5c11shard\n    &quot;successful&quot;: 1,  \/\/ \u6210\u529f\u67e5\u8be2\u5230\u591a\u5c11shard\n    &quot;skipped&quot;: 0,  \/\/ \u8df3\u8fc7\u7684shard\n    &quot;failed&quot;: 0  \/\/ \u67e5\u8be2\u5931\u8d25\u7684shard\uff0c\u5982\u679c\u8be5shard\u6ca1\u6709backup\uff0c\u90a3\u4e48\u8fd4\u56de\u7ed3\u679c\u53ef\u80fd\u4e0d\u5b8c\u6574\n}<\/code><\/pre>\n<p>\u547d\u4e2d\u7ed3\u679c<\/p>\n<pre><code class=\"language-json\">&quot;hits&quot;: {\n  &quot;total&quot;: {\n      &quot;value&quot;: 75,  \/\/ \u5171\u8ba1\u547d\u4e2d\u4e86\u591a\u5c11doc\n      &quot;relation&quot;: &quot;eq&quot;\n  },\n  &quot;max_score&quot;: 10.095917,  \/\/ \u6700\u9ad8\u5f97\u5206\uff0c\u6839\u636eTF-IDF\u5f97\u5206\uff0chit\u9ed8\u8ba4\u6309\u7167\u6253\u5206\u7ed3\u679c\u5012\u5e8f\u6392\u5217\n  &quot;hits&quot;: [\n      {\n        &quot;_index&quot;: &quot;kibana_sample_data_ecommerce&quot;,\n        &quot;_type&quot;: &quot;_doc&quot;,\n        &quot;_id&quot;: &quot;jFzZ0HMByChJljz5elUt&quot;,\n        &quot;_score&quot;: 10.095917,  \/\/ \u6587\u6863\u6253\u5206\n        &quot;_source&quot;: {\n            &quot;currency&quot;: &quot;EUR&quot;,\n            &quot;order_id&quot;: 564272\n            }\n        },\n        {\n            &quot;_index&quot;: &quot;kibana_sample_data_ecommerce&quot;,\n            &quot;_type&quot;: &quot;_doc&quot;,\n            &quot;_id&quot;: &quot;PlzZ0HMByChJljz5glt-&quot;,\n            &quot;_score&quot;: 10.095917,\n            &quot;_source&quot;: {\n                &quot;currency&quot;: &quot;EUR&quot;,\n                &quot;order_id&quot;: 552806\n            }\n        },\n        {\n            &quot;_index&quot;: &quot;kibana_sample_data_ecommerce&quot;,\n            &quot;_type&quot;: &quot;_doc&quot;,\n            &quot;_id&quot;: &quot;_VzZ0HMByChJljz5cVBD&quot;,\n            &quot;_score&quot;: 5.6103525,  \/\/ \u6587\u6863\u6253\u5206\uff0c\u4f4e\u4e8e\u7b2c\u4e00\u4e2a\u7ed3\u679c\uff0c\u53ef\u89c1\u8be5\u6587\u6863\u5e76\u672a100%\u6ee1\u8db3\u641c\u7d22\u7ed3\u679c\n            &quot;_source&quot;: {\n                &quot;currency&quot;: &quot;EUR&quot;,\n                &quot;order_id&quot;: 576030\n            }\n        }\n    ]\n}<\/code><\/pre>\n<h4>Query DSL<\/h4>\n<p>\u67e5\u770b\u6587\u6863\uff0c<a target=\"_blank\" rel=\"noopener\" href=\"https:\/\/www.elastic.co\/guide\/en\/elasticsearch\/reference\/current\/query-dsl.html\">Query DSL<\/a> \u4ee5\u4e86\u89e3\u591a\u79cdquery DSL\u65b9\u5f0f<\/p>\n<ul>\n<li>query_string \u4ecelucence\u7ee7\u627f\u800c\u6765\u7684\u5168\u6587\u6863\u641c\u7d22\u65b9\u5f0f<\/li>\n<li>term \u76f4\u63a5\u8fdb\u884c\u5355\u8bcd\u5339\u914d\u7684\u641c\u7d22\u65b9\u5f0f<\/li>\n<li>filter \u8fc7\u6ee4\uff0c\u9664\u4e86\u4f7f\u7528\u5206\u6570\u547d\u4e2d\u60f3\u641c\u7684\u5185\u5bb9\uff0c\u4e5f\u53ef\u4ee5\u4f7f\u7528filter\u6392\u9664\u4e0d\u60f3\u770b\u7684\u5185\u5bb9<\/li>\n<\/ul>\n<h4>\u4f7f\u7528ID\u641c\u7d22<\/h4>\n<p>\u5f53\u77e5\u9053\u7279\u5b9adocument\u7684 <code>_id<\/code> \u65f6\uff0c\u53ef\u4ee5\u76f4\u63a5\u8fdb\u884c\u641c\u7d22\uff0ccost\u66f4\u4f4e\uff0c\u901f\u5ea6\u6bd4search\u5feb<br \/>\n<code>http:\/\/localhost:9200\/kibana_sample_data_ecommerce\/_doc\/jFzZ0HMByChJljz5elUt<\/code><\/p>\n<h4>\u641c\u7d22\u5206\u7247\u4fe1\u606f<\/h4>\n<p><a target=\"_blank\" rel=\"noopener\" href=\"http:\/\/localhost:9200\/_cat\/shards?v\">http:\/\/localhost:9200\/_cat\/shards?v<\/a><\/p>\n<h2>\u6620\u5c04<\/h2>\n<h3>\u81ea\u52a8\u521b\u5efa\u6620\u5c04<\/h3>\n<p>\u5f53\u7d22\u5f15\u4e00\u7bc7\u6587\u6863\u7684\u65f6\u5019\uff0cES\u4f1a\u81ea\u52a8\u5224\u65ad\u5e76\u521b\u5efa\u6620\u5c04\u5173\u7cfb<\/p>\n<pre><code class=\"language-json\">\/\/ \u7d22\u5f15\u4e00\u4e2adoc\nPUT http:\/\/{{host}}\/get-together-1\/_doc\/1\n{\n    &quot;name&quot;: &quot;Late Night with ElasticSearch&quot;,\n    &quot;date&quot;: &quot;2019-10-25T19:00:00&quot;\n}\n\n\/\/ \u67e5\u8be2\u5b83\u7684mapping\nGET http:\/\/{{host}}\/get-together-1\/_mapping<\/code><\/pre>\n<h3>\u6dfb\u52a0\u65b0\u7684\u6620\u5c04<\/h3>\n<pre><code class=\"language-json\">PUT http:\/\/{{host}}\/get-together-1\/_mapping\n{\n    &quot;properties&quot;: {\n        &quot;host&quot;: {\n            &quot;type&quot;: &quot;text&quot;,\n            &quot;fields&quot;: {\n                &quot;keyword&quot;: {\n                    &quot;type&quot;: &quot;keyword&quot;,\n                    &quot;ignore_above&quot;: 256\n                }\n            }\n        }\n    }\n}<\/code><\/pre>\n<h3>\u4fee\u6539\u6620\u5c04<\/h3>\n<p>\u901a\u5e38\uff0c\u6211\u4eec\u65e0\u6cd5\u4fee\u6539\u73b0\u6709\u5b57\u6bb5\u7684\u7c7b\u578b\u4ee5\u53ca\u88ab\u7d22\u5f15\u7684\u65b9\u5f0f<br \/>\n\u53ef\u884c\u7684\u65b9\u6848\u662f\uff0c\u5220\u9664\u8be5\u7d22\u5f15\u4e0b\u6240\u6709\u7684\u6570\u636e\uff0c\u4fee\u6539\u6620\u5c04\uff0c\u91cd\u65b0\u7d22\u5f15\u6570\u636e<\/p>\n<h2>\u6570\u636e\u7c7b\u578b<\/h2>\n<p>\u56db\u5927\u6838\u5fc3\u7c7b\u578b<\/p>\n<ul>\n<li>\u5b57\u7b26\u4e32<\/li>\n<li>\u6570\u503c<\/li>\n<li>\u65e5\u671f<\/li>\n<li>\u5e03\u5c14<\/li>\n<\/ul>\n<h3>\u5b57\u7b26\u4e32<\/h3>\n<p>\u5b57\u7b26\u4e32\u6709\u4e24\u79cdtype\uff0ctext\u548ckeyword<\/p>\n<ul>\n<li>text\u53ef\u4ee5\u8fdb\u884c\u6a21\u7cca\u5339\u914d\uff0c\u5206\u8bcd<\/li>\n<li>keyword\u7528\u4e8e\u7cbe\u51c6\u67e5\u8be2\uff0c\u4e0d\u5206\u8bcd<\/li>\n<\/ul>\n<p>see more <a target=\"_blank\" rel=\"noopener\" href=\"https:\/\/www.elastic.co\/blog\/strings-are-dead-long-live-strings\">strings-are-dead<\/a><\/p>\n<pre><code>\/\/ \u5206\u8bcd\nlate night\uff0c\u4f1a\u88ab\u62c6\u89e3\u6210late\u548cnight\nlatenight\uff0c\u4f1a\u88ab\u8ba4\u4e3a\u4e00\u4e2a\u5355\u8bcd\uff0c\u5f53\u641c\u7d22late\u662f\u65e0\u6cd5\u547d\u4e2d<\/code><\/pre>\n<h3>\u6570\u5b57<\/h3>\n<p>\u540c\u6837\u5206\u6d6e\u70b9\u6570\u548c\u6574\u6570\u7c7b\u578b\uff0c\u9ed8\u8ba4\u6574\u6570\u7c7b\u578b\u5206\u914dlong\u578b\u7d22\u5f15\uff0c\u6d6e\u70b9\u6570\u5206\u914ddouble\u578b\u7d22\u5f15<\/p>\n<h3>\u65e5\u671f<\/h3>\n<ul>\n<li>ES\u89e3\u6790date\u7c7b\u578b\u5e76\u5b58\u50a8\u4e3along\u578b\uff081970-1-1\u81f3\u4eca\uff09<\/li>\n<li>\u65e5\u671f\u683c\u5f0f\u9ed8\u8ba4\u4f7f\u7528 <a target=\"_blank\" rel=\"noopener\" href=\"https:\/\/en.wikipedia.org\/wiki\/ISO_8601\">ISO 8601<\/a><\/li>\n<li>\u53ef\u4ee5\u5728mapping\u5185\u81ea\u5b9a\u4e49\u65e5\u671f\u683c\u5f0f<\/li>\n<\/ul>\n<h3>\u6570\u7ec4<\/h3>\n<p>ES\u6ca1\u6709\u7279\u6b8a\u7684\u6570\u7ec4\u7c7b\u578b\uff0c\u6240\u6709\u6570\u636e\u7c7b\u578b\u9ed8\u8ba4\u652f\u6301\u5355\u4e2a\u6216\u8005\u6570\u7ec4\u3002<\/p>\n<pre><code class=\"language-json\">\/\/ \u53ef\u4ee5\u7d22\u5f15\u4e00\u4e2a\u6570\u7ec4\u7c7b\u578b\u7684date\n{\n    &quot;name&quot;: &quot;Late Night with ElasticSearch&quot;,\n    &quot;date&quot;: [&quot;2015-10-25T19:00:00&quot;, &quot;2015-10-26T19:00:00&quot;],\n    &quot;tags&quot;: [&quot;first&quot;, &quot;initial&quot;]\n}\n\/\/ \u4e5f\u53ef\u4ee5\u7d22\u5f15\u4e00\u4e2a\u5355\u503c\u7684date\n{\n    &quot;name&quot;: &quot;Late Night with ElasticSearch&quot;,\n    &quot;date&quot;: &quot;2015-10-26T19:00:00&quot;,\n    &quot;tags&quot;: [&quot;first&quot;, &quot;initial&quot;]\n}\n\/\/ \u5bf9\u5e94date\u7684mapping\u53ea\u662f\u666e\u901a\u7684date\n&quot;date&quot;: {\n    &quot;type&quot;: &quot;date&quot;\n}<\/code><\/pre>\n<h2>\u66f4\u65b0<\/h2>\n<p><a target=\"_blank\" rel=\"noopener\" href=\"https:\/\/www.elastic.co\/guide\/en\/elasticsearch\/reference\/current\/docs-update.html\">Update API<\/a><\/p>\n<pre><code class=\"language-json\">\/\/ create a document\n{\n    &quot;name&quot;: &quot;Late Night with ElasticSearch&quot;,\n    &quot;date&quot;: &quot;2015-10-26T19:00:00&quot;\n}\n\n\/\/ update\n\/\/ use script to add a field to _source\nPOST http:\/\/{{host}}\/get-together-1\/_update\/Sbi15HMBtUE9uNYxz816\/\n{\n    &quot;script&quot;: {\n        &quot;source&quot;: &quot;ctx._source.tags = \\&quot;first\\&quot;&quot;\n    }\n}\n\n\/\/ use doc to update the fields\nPOST http:\/\/{{host}}\/get-together-1\/_update\/Sbi15HMBtUE9uNYxz816\/\n{\n    &quot;doc&quot;: {\n        &quot;tags&quot;: &quot;2nd&quot;\n    }\n}<\/code><\/pre>\n<p><strong>\u7248\u672c\u63a7\u5236<\/strong><\/p>\n<p>\u4f7f\u7528_version\u5b57\u6bb5\u5b9e\u73b0\u4e50\u89c2\u9501\u673a\u5236\u7684\u7248\u672c\u63a7\u5236<\/p>\n<h2>\u5220\u9664<\/h2>\n<p>\u5220\u9664\u6587\u6863<br \/>\n<code>DELETE http:\/\/{{host}}\/get-together-1\/_doc\/Sbi15HMBtUE9uNYxz816<\/code><\/p>\n<p>\u540c\u6837\uff0c\u6574\u4e2a\u7d22\u5f15\u4e5f\u53ef\u4ee5\u5220\u9664<br \/>\n<code>DELETE http:\/\/{{host}}\/get-together-2<\/code><\/p>\n<p>\u518d\u6b21\u8fdb\u884c\u641c\u7d22\uff0c\u4f1a\u5f97\u5230\u62a5\u9519<\/p>\n<pre><code class=\"language-json\">{\n    &quot;type&quot;: &quot;index_not_found_exception&quot;,\n    &quot;reason&quot;: &quot;no such index [get-together-2]&quot;,\n    &quot;resource.type&quot;: &quot;index_or_alias&quot;,\n    &quot;resource.id&quot;: &quot;get-together-2&quot;,\n    &quot;index_uuid&quot;: &quot;_na_&quot;,\n    &quot;index&quot;: &quot;get-together-2&quot;\n}<\/code><\/pre>\n<p><strong>\u5173\u95ed\u7d22\u5f15<\/strong><\/p>\n<p>\u5bf9\u4e8e\u6682\u65f6\u4e0d\u60f3\u7528\u7684\u7d22\u5f15\uff0c\u53ef\u4ee5\u4f7f\u7528\u5173\u95ed\u64cd\u4f5c\uff0c\u5173\u95ed\u540e\u65e0\u6cd5\u5199\u5165\u6587\u6863\u548c\u68c0\u7d22<\/p>\n<pre><code class=\"language-json\">\/\/ close\nPOST http:\/\/{{host}}\/get-together-2\/_close\n\n{\n    &quot;acknowledged&quot;: true,\n    &quot;shards_acknowledged&quot;: true,\n    &quot;indices&quot;: {\n        &quot;get-together-2&quot;: {\n            &quot;closed&quot;: true\n        }\n    }\n}\n\n\/\/ re-open\nPOST http:\/\/{{host}}\/get-together-2\/_open<\/code><\/pre>\n<h2>\u641c\u7d22<\/h2>\n<h3>URL based search<\/h3>\n<p>\u57fa\u4e8eURL\u7684\u641c\u7d22\u63d0\u4f9b\u4e86\u57fa\u672c\u7684\u529f\u80fd\uff0c\u65b9\u4fbf\u914d\u5408CURL\u547d\u4ee4<\/p>\n<pre><code>POST or GET\n\/_search  \/\/ find all documents\n\/{{index}}\/_search  \/\/ find the documents of indicated index\n\/{{index}}\/_search?size=10  \/\/ only return at most 10 documents of index\n\/{{index}}\/_search?sort={{field}}:asc  \/\/ sort by field in ascend\n\/{{index}}\/_search?sort={{field}}:desc  \/\/ sort by field in descend\n\/{{index}}\/_search?_source={{field1}},{{field2}}  \/\/ only return field1 &amp; field2 of found documents\n\/{{index}}\/_search?q={{field}}:{{value}}  \/\/ filter, only find the document within field = value<\/code><\/pre>\n<h3>Request body based search<\/h3>\n<p>\u57fa\u4e8e\u8bf7\u6c42\u4f53\u7684\u641c\u7d22\u63d0\u4f9b\u4e86\u9ad8\u7ea7\u529f\u80fd<\/p>\n<pre><code class=\"language-json\">GET kibana_sample_data_ecommerce\/_search\n{\n  &quot;query&quot;: {\n    &quot;match_all&quot;: {}\n  },\n  &quot;size&quot;: 2,\n  &quot;_source&quot;: [&quot;order_id&quot;, &quot;order_date&quot;, &quot;currency&quot;],\n  &quot;sort&quot;: [\n    {\n      &quot;order_date&quot;: {\n        &quot;order&quot;: &quot;desc&quot;\n      }\n    }\n  ]\n}<\/code><\/pre>\n<h3>\u57fa\u7840\u67e5\u8be2<\/h3>\n<ul>\n<li>\u4f7f\u7528query DSL<\/li>\n<li>\u67e5\u8be2\u4e0e\u8fc7\u6ee4\u7684\u533a\u522b\uff0c\u67e5\u8be2\u4f1a\u5bf9\u6587\u6863\u8fdb\u884c\u6253\u5206\uff0c\u6839\u636e\u6253\u5206\u7ed3\u679c\u8fd4\u56de\u6700\u5339\u914d\u7684\uff1b\u800c\u8fc7\u6ee4\u53ea\u9700\u8981\u786e\u5b9a\u6587\u6863\u662f\u5426\u7b26\u5408\u67e5\u8be2\u6761\u4ef6\uff0c\u6240\u4ee5\u66f4\u5feb<\/li>\n<\/ul>\n<p><strong>match<\/strong><\/p>\n<pre><code class=\"language-json\">\/\/ match, same as include\n\/\/ to find document within currency = EUR\n&quot;match&quot;: {\n    &quot;currency&quot;:&quot;EUR&quot;\n}<\/code><\/pre>\n<p>__match_all__<\/p>\n<p>it matches all documents<\/p>\n<p>__query_string__<\/p>\n<pre><code class=\"language-json\">\/\/ \u975e\u5e38\u5f3a\u5927\u7684\u67e5\u8be2\u65b9\u5f0f\uff0c\u53ef\u4ee5\u63d0\u4f9bAND,OR\u7684\u6761\u4ef6\u8fde\u63a5\n\/\/ \u7531\u4e8e\u8fc7\u53bb\u5f3a\u5927\uff0c\u4f7f\u5f97\u67e5\u8be2\u8868\u8fbe\u5f0f\u5728\u6761\u4ef6\u8fc7\u591a\u65f6\u96be\u4ee5\u9605\u8bfb\n&quot;query&quot;: {\n    &quot;query_string&quot;: {\n      &quot;default_field&quot;: &quot;category&quot;,\n      &quot;query&quot;: &quot;Men*&quot;\n    }\n}<\/code><\/pre>\n<p><strong>term &amp; terms<\/strong><\/p>\n<pre><code class=\"language-json\">\/\/ term, \u8bcd\u6761\u5339\u914d\u4e00\u4e2a\u671f\u671b\u503c\n&quot;query&quot;: {\n    &quot;term&quot;: {\n      &quot;customer_last_name.keyword&quot;: {\n        &quot;value&quot;: &quot;Smith&quot;\n      }\n    }\n}\n\/\/ terms, \u8bcd\u6761\u5339\u914d\u591a\u4e2a\u671f\u671b\u503c\n&quot;query&quot;: {\n    &quot;terms&quot;: {\n      &quot;customer_last_name.keyword&quot;: [\n        &quot;Smith&quot;,\n        &quot;Jensen&quot;\n      ]\n    }\n}<\/code><\/pre>\n<h3>\u590d\u5408\u67e5\u8be2 bool<\/h3>\n<p>see <a target=\"_blank\" rel=\"noopener\" href=\"https:\/\/www.elastic.co\/guide\/en\/elasticsearch\/reference\/current\/query-dsl-bool-query.html\">Boolean query DSL<\/a><\/p>\n<pre><code class=\"language-json\">\/\/ use bool query to find document matches all criterias\n&quot;query&quot;: {\n    &quot;bool&quot;: {\n        &quot;must_not&quot;: [\n            {&quot;term&quot;: {\n                &quot;currency&quot;: {\n                &quot;value&quot;: &quot;USD&quot;\n                }\n            }}\n        ]\n    }\n}<\/code><\/pre>\n<h3>\u5176\u4ed6\u67e5\u8be2<\/h3>\n<pre><code class=\"language-json\">\/\/ range, query the document within the filed match the value range\n\/\/ range can be lt, lte, gt, gte\n&quot;query&quot;: {\n    &quot;range&quot;: {\n      &quot;taxful_total_price&quot;: {\n        &quot;gt&quot;: 100,\n        &quot;lt&quot;: 200\n      }\n    }\n}\n\/\/ exists, the field must exist in document\n&quot;query&quot;: {\n    &quot;exists&quot;: {\n      &quot;field&quot;: &quot;currency&quot;\n    }\n}<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>\u4ecedocker\u542f\u52a8 ElasticSearch: https:\/\/hub.docker.com\/_\/elast [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[301],"tags":[],"class_list":["post-2072","post","type-post","status-publish","format-standard","hentry","category-elasticsearch"],"_links":{"self":[{"href":"https:\/\/www.appblog.cn\/index.php\/wp-json\/wp\/v2\/posts\/2072","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.appblog.cn\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.appblog.cn\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.appblog.cn\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.appblog.cn\/index.php\/wp-json\/wp\/v2\/comments?post=2072"}],"version-history":[{"count":0,"href":"https:\/\/www.appblog.cn\/index.php\/wp-json\/wp\/v2\/posts\/2072\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.appblog.cn\/index.php\/wp-json\/wp\/v2\/media?parent=2072"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.appblog.cn\/index.php\/wp-json\/wp\/v2\/categories?post=2072"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.appblog.cn\/index.php\/wp-json\/wp\/v2\/tags?post=2072"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}