{"id":15065,"date":"2017-02-09T12:56:36","date_gmt":"2017-02-09T03:56:36","guid":{"rendered":"http:\/\/vitalify.jp\/blog\/?p=15065"},"modified":"2024-04-25T11:46:44","modified_gmt":"2024-04-25T02:46:44","slug":"elasticsearch_matome","status":"publish","type":"post","link":"https:\/\/vitalify.jp\/blog\/2017\/02\/elasticsearch_matome.html","title":{"rendered":"\u5168\u6587\u691c\u7d22\u30a8\u30f3\u30b8\u30f3\u300cElasticsearch\u300d\u3092\u8abf\u3079\u3066\u4f7f\u3063\u3066\u307f\u305f\u8272\u3005\u307e\u3068\u3081"},"content":{"rendered":"<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone wp-image-15072 size-full\" src=\"https:\/\/vitalify.jp\/blog\/wp-content\/uploads\/2017\/02\/url.png\" alt=\"url\" width=\"384\" height=\"131\" srcset=\"https:\/\/vitalify.jp\/blog\/wp-content\/uploads\/2017\/02\/url.png 384w, https:\/\/vitalify.jp\/blog\/wp-content\/uploads\/2017\/02\/url-300x102.png 300w\" sizes=\"(max-width: 384px) 85vw, 384px\" \/><\/p>\n<p>\u3053\u3093\u306b\u3061\u306f\u3001AWS\u3067\u306fcodedeploy\u304c\u597d\u304d\u306a\u4e2d\u6751\u3067\u3059\u3002<\/p>\n<p>IT\u696d\u754c\u306f\u30c9\u30c3\u30b0\u30a4\u30e4\u30fc\u3068\u8a00\u308f\u308c\u3066\u4e45\u3057\u3044\u3067\u3059\u304c\u3001\u6280\u8853\u306e\u9032\u6b69\u306f\u76ee\u307e\u3050\u308b\u3057\u304f\u9032\u3093\u3067\u3044\u307e\u3059\u3002<\/p>\n<p>\u305d\u308c\u306b\u4f34\u3044\u3001\u4e16\u306e\u4e2d\u304c\u6c42\u3081\u308bWeb\u30b5\u30fc\u30d3\u30b9\u30fb\u30b9\u30de\u30db\u30a2\u30d7\u30ea\u306e\u30b9\u30d4\u30fc\u30c9\u611f\u306f\u65e5\u3005\u5897\u3057\u3066\u3044\u307e\u3059\u3002<\/p>\n<p>\u30da\u30fc\u30b8\u3092\u8868\u793a\u3059\u308b\u306e\u306b2\u79d2\u4ee5\u4e0a\u304b\u3051\u3066\u306f\u3044\u3051\u306a\u3044\u3001\u30010.1\u79d2\u8868\u793a\u901f\u5ea6\u304c\u9045\u304f\u306a\u308b\u3068xxx\u4ef6\u306e\u30e6\u30fc\u30b6\u30fc\u304c\u96e2\u8131\u3059\u308b\u3002\u3002\u306a\u3069\u3001\u3044\u308d\u3044\u308d\u306a\u901a\u8aac\u304c\u51fa\u3066\u304d\u3066\u3044\u308b\u307b\u3069\u3067\u3059\u3002<\/p>\n<p>\u4eca\u56de\u306f\u305d\u3093\u306a\u4e16\u306e\u4e2d\u304c\u6c42\u3081\u308bWeb\u30b5\u30fc\u30d3\u30b9\u306e\u8868\u793a\u30b9\u30d4\u30fc\u30c9\u3092\u5287\u7684\u306b\u901f\u304f\u3067\u304d\u308b\u30b5\u30fc\u30d3\u30b9\u300c<strong>Elastichsearch<\/strong>\u300d\u306b\u3064\u3044\u3066\u8abf\u3079\u3066\u307f\u307e\u3057\u305f\u3002<\/p>\n<p>&nbsp;<\/p>\n<p>\u3053\u306e\u30b5\u30fc\u30d3\u30b9\u306f<strong>Facebook<\/strong>\u3084<strong>Github<\/strong>\u3067\u3082\u63a1\u7528\u3055\u308c\u3066\u3044\u308b\u30b5\u30fc\u30d3\u30b9\u3067\u3059\u306e\u3067\u3001\u77e5\u3063\u3066\u304a\u3044\u3066\u640d\u306f\u306a\u3044\u3067\u3059\u3002<br \/>\n<!--more--><br \/>\n\u3067\u306f\u307e\u305a\u3001ElasicSearch\u3068\u306f\u3069\u3093\u306a\u30b5\u30fc\u30d3\u30b9\u3067\u3057\u3087\u3046\u304b\uff1f<\/p>\n<h2>\u25a0Elasticsearch\u3068\u306f<\/h2>\n<h4>\u30fb\u6982\u8981<\/h4>\n<p>Elasticsearch(\u30a8\u30e9\u30b9\u30c6\u30a3\u30c3\u30af\u30b5\u30fc\u30c1)\u3068\u306f\u3001Elastic\u793e\u304c\u63d0\u4f9b\u3059\u308b\u300cLucene\u300d\u30d9\u30fc\u30b9\u306e\u30aa\u30fc\u30d7\u30f3\u30bd\u30fc\u30b9\u5168\u6587\u691c\u7d22\u30a8\u30f3\u30b8\u30f3\u3067\u3059\u3002<br \/>\n\u306a\u304a\u5168\u6587\u691c\u7d22\u30a8\u30f3\u30b8\u30f3\u3068\u306f\u3001\u5927\u91cf\u306b\u3042\u308b\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u30c7\u30fc\u30bf\u306e\u4e2d\u304b\u3089\u3001\u76ee\u7684\u306e\u30ef\u30fc\u30c9\u3092\u542b\u3080\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u30c7\u30fc\u30bf\u3092\u691c\u7d22\u3059\u308b\u305f\u3081\u306e\u4ed5\u7d44\u307f\u3067\u3059\u3002<\/p>\n<h4>\u30fbMySQL\u306a\u3069\u306eRDBMS\u3068\u306e\u9055\u3044\u3084\u7279\u5fb4<\/h4>\n<p>\u7279\u5fb4\u3068\u3057\u3066\u3001MySQL(RDBMS) \u3001Redshift(\u30c7\u30fc\u30bf\u30a6\u30a7\u30a2\u30cf\u30a6\u30b9)\u3001DynamoDB(NoSQL)\u306a\u3069\u3068\u6bd4\u3079\u308b\u3068\u3001\u8907\u96d1\u306a\u691c\u7d22\u3001\u9ad8\u901f\u306b\u5b9f\u884c\u306a\u3069\u304c\u5b9f\u73fe\u53ef\u80fd\u3067\u3059\u3002<br \/>\n\u30ad\u30fc\u30ef\u30fc\u30c9\u3068\u3057\u3066\u4ee5\u4e0b\u304c\u3042\u308a\u307e\u3059\u3002<br \/>\n\u3010\u30b9\u30b1\u30fc\u30e9\u30d6\u30eb\u3011<br \/>\n\u8d85\u5927\u898f\u6a21\u306a\u30b7\u30b9\u30c6\u30e0\u3067\u3082\u5229\u7528\u3067\u304d\u307e\u3059\u3002\u7406\u7531\u3068\u3057\u3066\u30af\u30e9\u30b9\u30bf\u69cb\u6210(\u8907\u6570\u306e\u30b3\u30f3\u30d4\u30e5\u30fc\u30bf\u3092\u9023\u7d50\u3057\u30011\u53f0\u306e\u30b3\u30f3\u30d4\u30e5\u30fc\u30bf\u3068\u3057\u3066\u632f\u308b\u821e\u3046)\u304c\u524d\u63d0\u3067\u4f5c\u3089\u308c\u3066\u3044\u308b\u304b\u3089\u3067\u3059\u3002\u65e2\u5b58\u30c7\u30fc\u30bf\u306e\u5206\u6563\/\u30ec\u30d7\u30ea\u30ab\u306a\u3069\u304c\u81ea\u52d5\u3067\u5b9f\u884c\u3067\u304d\u305f\u308a\u3059\u308b\u305f\u3081\u3001Hadoop\u3068\u306e\u89aa\u548c\u6027\u3082\u9ad8\u3044\u3067\u3059\u3002<br \/>\n\u3010\u30b9\u30ad\u30fc\u30de\u30ec\u30b9\u3011<br \/>\n\u30c7\u30fc\u30bf\u69cb\u9020\u304c\u975e\u5e38\u306b\u67d4\u8edf\u6027\u306b\u5bcc\u3093\u3067\u3044\u307e\u3059\u3002JSON \u5f62\u5f0f\u306e\u30c7\u30fc\u30bf\u3092\u53d7\u3051\u3066\u3044\u304a\u308a\u3001\u69d8\u3005\u306a\u30c7\u30fc\u30bf\u69cb\u9020(\u30cd\u30b9\u30c8\u5f62\u5f0f\u306a\u3069\u542b\u3080)\u3067\u3082\u30a4\u30f3\u30c7\u30c3\u30af\u30b9\u304c\u3067\u304d\u305f\u308a\u3001\u30b9\u30ad\u30fc\u30de(\u30c7\u30fc\u30bf\u30de\u30c3\u30d4\u30f3\u30b0)\u5b9a\u7fa9\u3082\u306a\u3057\u3067\u3001\u30c7\u30fc\u30bf\u6295\u5165\u306a\u3069\u3082\u3067\u304d\u307e\u3059\u3002<br \/>\n\u3010\u30de\u30eb\u30c1\u30c6\u30ca\u30f3\u30c8\u3011<br \/>\n\u69d8\u3005\u306a\u30b5\u30fc\u30d3\u30b9\u3067\u81ea\u7531\u306b\u6a2a\u65ad\u3057\u3066\u691c\u7d22\u30fb\u5206\u6790\u304c\u53ef\u80fd\u3067\u3059\u30021\u3064\u306e\u30af\u30e9\u30b9\u30bf\u306b\u8907\u6570\u306eIndex(\u30c7\u30fc\u30bf\u306e\u307e\u3068\u307e\u308a) \u304c\u4f5c\u6210\u3067\u304d\u3001\u305d\u3053\u306b\u5bfe\u3057\u3066\u7c21\u5358\u304b\u3064\u9ad8\u901f\u306b\u691c\u7d22\u51e6\u7406\u304c\u3067\u304d\u307e\u3059\u3002\u5bfe\u8c61\u30ef\u30fc\u30c9\u306e\u51fa\u73fe\u983b\u5ea6(\u30b9\u30b3\u30a2)\u3092\u4f7f\u3063\u305f\u691c\u7d22\u304c\u3067\u304d\u308b\u3053\u3068\u3084\u3001\u300cKibana\u300d\u3068\u9023\u643a\u3059\u308b\u3068\u7c21\u5358\u306b\u30c7\u30fc\u30bf\u5206\u6790\u3082\u3067\u304d\u307e\u3059\u3002<\/p>\n<h2>\u25a0Elasticsearch\u3067\u899a\u3048\u3066\u304a\u304f\u3079\u304d\u30ad\u30fc\u30ef\u30fc\u30c9<\/h2>\n<p>MySQL\u3068\u6bd4\u8f03\u3057\u306a\u304c\u3089Elasticsearch\u306e\u899a\u3048\u3066\u304a\u304f\u3079\u304d\u30ad\u30fc\u30ef\u30fc\u30c9\u3092\u307e\u3068\u3081\u307e\u3059\u3002<\/p>\n<h4>\u30fbCluster(\u30af\u30e9\u30b9\u30bf)\u3068Node(\u30ce\u30fc\u30c9)<\/h4>\n<p>Cluster\u3068\u306fNode\u306e\u96c6\u5408\u4f53\u3067\u3059\u3002<br \/>\nNode\u3068\u306f\u30b5\u30fc\u30d0\u30fc\u3068\u540c\u3058\u6982\u5ff5\u306e\u30ec\u30d9\u30eb\u306e\u3082\u306e\u3067\u30011\u53f0\u306e\u30b5\u30fc\u30d0\u30fc\u306b1Node\u7528\u610f\u3057\u307e\u3059\u3002<br \/>\n\u30c8\u30e9\u30d5\u30a3\u30c3\u30af\u304c\u5897\u52a0\u3057\u305f\u5834\u5408\u306f\u3001Node\u3092\u5897\u3084\u3059\u3053\u3068\u3067\u3001\u51e6\u7406\u901f\u5ea6\u306e\u5206\u6563\u304c\u3067\u304d\u308b\u3088\u3046\u306a\u4ed5\u7d44\u307f\u306b\u306a\u3063\u3066\u3044\u307e\u3059\u3002<\/p>\n<h4>\u30fbIndex(\u30a4\u30f3\u30c7\u30c3\u30af\u30b9)<\/h4>\n<p>RDB\u306eDatabase\u306e\u6982\u5ff5\u30ec\u30d9\u30eb\u306b\u8a72\u5f53\u3057\u307e\u3059\u3002<br \/>\n1\u3064\u306eCluster\u306b\u8907\u6570\u306eIndex\u304c\u4f5c\u6210\u3067\u304d\u307e\u3059\u3002<\/p>\n<h4>\u30fbType(\u30bf\u30a4\u30d7)<\/h4>\n<p>RDB\u306eTable\u306e\u6982\u5ff5\u30ec\u30d9\u30eb\u306b\u8a72\u5f53\u3057\u307e\u3059\u3002<br \/>\n1\u3064\u306eIndex\u306b\u8907\u6570\u306eType\u304c\u4f5c\u6210\u3067\u304d\u307e\u3059\u3002<\/p>\n<h4>\u30fbDocument(\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8)<\/h4>\n<p>RDB\u306eRow\u306e\u6982\u5ff5\u30ec\u30d9\u30eb\u306b\u8a72\u5f53\u3057\u307e\u3059\u3002<br \/>\nid\u3092\u30ad\u30fc\u306b\u3057\u3066\u500b\u3005\u306e\u30c7\u30fc\u30bf\u3092\u7ba1\u7406\u3057\u307e\u3059\u3002<\/p>\n<h4>\u30fbShard(\u30b7\u30e3\u30fc\u30c9\uff09<\/h4>\n<p>RAID\u3067\u69cb\u6210\u3055\u308c\u305f\u30cf\u30fc\u30c9\u30c7\u30a3\u30b9\u30af\u3068\u4f3c\u305f\u4ed5\u7d44\u307f\u306b\u306a\u308a\u307e\u3059\u3002<br \/>\n1\u3064\u306eindex\u3092\u4f5c\u6210\u3059\u308b\u3068\u3001\u5408\u308f\u305b\u3066Shad\u304c\u8907\u6570\u4f5c\u6210\u3055\u308c\u307e\u3059\u3002<br \/>\nShard\u306fPrimary(master)\u3068Replica\u3067\u69cb\u6210\u3055\u308c\u3066\u304a\u308a\u30011Node\u306b\u306f1shard\u914d\u7f6e\u3055\u308c\u307e\u3059\u3002<br \/>\n\u4f8b\u3048\u3070Primary\u304c\u3059\u3067\u306b\u5b58\u5728\u3059\u308bShard\u306b\u306f\u540c\u3058Node\u306bReplica\u306f\u5b58\u5728\u3067\u304d\u305a\u3001\u5225\u306eNode\u306b\u914d\u7f6e\u3055\u308c\u307e\u3059\u3002<\/p>\n<h2>\u25a0Elasticsearch\u3092\u89e6\u3063\u3066\u307f\u308b<\/h2>\n<p>\u3067\u306f\u5b9f\u969b\u306bElasticsearch\u3092\u89e6\u3063\u3066\u307f\u307e\u3059\u3002<br \/>\n\u306a\u304a\u3001\u5168\u3066Mac\u306e\u30ed\u30fc\u30ab\u30eb\u74b0\u5883\u3067\u5b9f\u65bd\u3057\u3066\u3044\u307e\u3059\u3002<\/p>\n<h4>\u30fbnode\u3082\u5fc5\u8981\u306a\u305f\u3081\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb<\/h4>\n<p>\u4f7f\u3046\u306b\u306fNode\u304c\u5fc5\u8981\u3067\u3059\u3002nodebrew\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3001\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u304c\u306a\u3044\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u305f\u305f\u3081\u3001\u3053\u308c\u3082\u4f5c\u6210\u3057\u3001\u30d1\u30b9\u3092\u901a\u3057\u307e\u3059\u3002<br \/>\n\u203bxxx\u306f\u30e6\u30fc\u30b6\u30fc\u540d<br \/>\n<code>brew install nodebrew<br \/>\nmkdir \/Users\/xxxxx\/.nodebrew\/<br \/>\nmkdir \/Users\/xxx\/.nodebrew\/src<br \/>\nnodebrew install-binary latest<br \/>\nexport PATH=$PATH:\/Users\/tnakamura\/.nodebrew\/current\/bin<br \/>\n<\/code><\/p>\n<h4>\u30fbelastic search\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb<\/h4>\n<p>\u30fb\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3067\u304d\u308b\u30d0\u30fc\u30b8\u30e7\u30f3\u306e\u78ba\u8a8d\u3057\u3001\u30d0\u30fc\u30b8\u30e7\u30f32.4\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3001\u5b9f\u884c<br \/>\n<code>brew search elasticsearch<br \/>\nbrew install elasticsearch@2.4<br \/>\ncd \/usr\/local\/Cellar\/elasticsearch@2.4\/2.4.4\/bin\/<br \/>\n.\/elasticsearch<br \/>\n<\/code><br \/>\n\u4ee5\u4e0b\u306eip\u3067\u8d77\u52d5\u3055\u308c\u307e\u3059<br \/>\n127.0.0.1:9300<br \/>\n\u3053\u308c\u3067\u6e96\u5099\u5b8c\u4e86<\/p>\n<h4>\u30fb\u30c7\u30fc\u30bf\u306e\u6295\u5165\u3084\u691c\u7d22<\/h4>\n<p>\u4ee5\u4e0b\u306e\u3088\u3046\u306a\u30b3\u30de\u30f3\u30c9\u3067\u72b6\u614b\u306e\u78ba\u8a8d\u304c\u3067\u304d\u307e\u3059\u3002<\/p>\n<p><code>curl 127.0.0.1:9200 #\u30d0\u30fc\u30b8\u30e7\u30f3\u306e\u6982\u8981<br \/>\ncurl 127.0.0.1:9200\/_cat\/health?v\u3000#\u30af\u30e9\u30b9\u30bf\u30fc\u306e\u72b6\u614b\u3092\u78ba\u8a8d<br \/>\ncurl 127.0.0.1:9200\/_cat\/indices?v #\u30a4\u30f3\u30c7\u30c3\u30af\u30b9\u306e\u72b6\u614b\u3092\u78ba\u8a8d<br \/>\n<\/code><\/p>\n<p>\u3067\u306f\u5b9f\u969b\u306b\u30c7\u30fc\u30bf\u3092\u6295\u5165\u3057\u3066\u307f\u307e\u3059\u3002<\/p>\n<p><code>#index\u306e\u4f5c\u6210<br \/>\ncurl 127.0.0.1:9200\/customer -X PUT<br \/>\n#sheards\u306ereplica\u304c\u4e0d\u8981\u306a\u306e\u3067\u524a\u9664\u3059\u308b<br \/>\ncurl -H 'Content-Type: application\/json' -X PUT -d '{\"index\":{\"number_of_replicas\": 0}}' 127.0.0.1:9200\/customer\/_settings<br \/>\n#Type\u3068Document\u3092\u4f5c\u6210<br \/>\ncurl -H 'Content-Type: application\/json' -X PUT -d '{\"name\u201d:\u201dtest\u201d}\u2019 127.0.0.1:9200\/customer\/external\/1<br \/>\n#\u6295\u5165\u7d50\u679c\u3092\u78ba\u8a8d<br \/>\ncurl 127.0.0.1:9200\/customer\/external\/1 | python -mjson.tool<br \/>\n% Total % Received % Xferd Average Speed Time Time Time Current<br \/>\nDload Upload Total Spent Left Speed<br \/>\n100 147 100 147 0 0 51006 0 --:--:-- --:--:-- --:--:-- 73500<br \/>\n{<br \/>\n\"_id\": \"1\",<br \/>\n\"_index\": \"customer\",<br \/>\n\"_source\": {<br \/>\n\"day\": \"2017-11-12\",<br \/>\n\"name\": \"test\",<br \/>\n\"timeFieldName\": \"day\"<br \/>\n},<br \/>\n\"_type\": \"external\",<br \/>\n\"_version\": 1,<br \/>\n\"found\": true<br \/>\n}<br \/>\n<\/code><\/p>\n<p>\u30c7\u30fc\u30bf\u6295\u5165\u304c\u3067\u304d\u307e\u3057\u305f\u3002<\/p>\n<p>\u4ed6\u306b\u3082\u4ee5\u4e0b\u306e\u3088\u3046\u306a\u30b3\u30de\u30f3\u30c9\u3067\u64cd\u4f5c\u304c\u3067\u304d\u307e\u3059\u3002<\/p>\n<p><code>#params\u3067\u6307\u5b9a\u306e\u6587\u5b57\u691c\u7d22<br \/>\ncurl -H 'Content-Type: application\/json' -X GET -d '{ \"id\": \"template01\", \"params\": { \"firstname\": \"Tammy\" }}' 127.0.0.1:9200\/_search\/template<br \/>\n#_updat\u3067\u306e\u30c7\u30fc\u30bf\u66f4\u65b0<br \/>\ncurl -H 'Content-Type: application\/json' -X POST -d '{\"doc\":{\"day\":\"2017-11-12\"}}' 127.0.0.1:9200\/customer\/external\/1\/_update<br \/>\n<\/code><\/p>\n<h2>\u25a0Elasticsearch\u3068MySQL\u306eDB\u3092\u9023\u643a\u3055\u305b\u308b<\/h2>\n<p>Elasticsearch\u306fMySQL\u306eDB\u3092\u9023\u643a\u3055\u305b\u3001\u30c7\u30fc\u30bf\u691c\u7d22\u3082\u3067\u304d\u307e\u3059\u3002<br \/>\nMySQL\u3067\u691c\u7d22\u901f\u5ea6\u3092\u6539\u5584\u3057\u305f\u3044\u3002\u305d\u3093\u306a\u6642\u306f\u9023\u52d5\u3057\u3066Elasticsearch\u3092\u4f7f\u3046\u3053\u3068\u3067\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u5411\u4e0a\u304c\u3067\u304d\u307e\u3059\u3002<br \/>\n\u9023\u52d5\u3055\u305b\u308b\u30b5\u30fc\u30d3\u30b9\u3068\u3057\u3066\u3001\u4ee5\u4e0b\u3092\u53d6\u5f97\u3057\u307e\u3059\u3002(JDBC\u3092\u4f7f\u3063\u3066\u3044\u308b\u9023\u643a\u30c4\u30fc\u30eb\u3067\u3059)<br \/>\n\u30fb\u30b5\u30a4\u30c8<br \/>\nhttps:\/\/github.com\/jprante\/elasticsearch-jdbc<br \/>\n\u3053\u3053\u304b\u3089elasticsearch-jdbc\u306e\u53d6\u5f97\u3092\u3057\u307e\u3059\u3002<br \/>\n\u203belasticsearch\u3068\u306e\u30d0\u30fc\u30b8\u30e7\u30f3\u304c\u9023\u52d5\u3057\u3066\u3044\u306a\u3044\u3068\u3044\u3051\u306a\u304f\u3001JDBC\u306b\u5408\u308f\u305b\u305felasticsearch\u3092\u3053\u306e\u5f8c\u5165\u308c\u76f4\u3057\u307e\u3057\u305f\u3002<br \/>\n\u306a\u304a\u3001\u30ed\u30fc\u30ab\u30eb\u3067MySQL\u306e\u74b0\u5883\u306f\u4e8b\u524d\u306b\u7528\u610f\u3057\u3066\u3044\u3066\u3001\u5bfe\u8c61\u306e\u30c6\u30fc\u30d6\u30eb\u306f1\u4e07\u4ef6\u7a0b\u5ea6\u306e\u30c7\u30fc\u30bf\u304c\u5165\u3063\u3066\u3044\u307e\u3059\u3002<br \/>\n\u3053\u3053\u304b\u3089\u30c7\u30fc\u30bf\u3092MySQL\u2192Elasticsearch\u3078\u6295\u5165\u3059\u308b\u30b9\u30af\u30ea\u30d7\u30c8\u3092\u5b9f\u884c\u3057\u307e\u3059\u3002<\/p>\n<p><code>wget http:\/\/xbib.org\/repository\/org\/xbib\/elasticsearch\/importer\/elasticsearch-jdbc\/2.3.4.1\/elasticsearch-jdbc-2.3.4.1-dist.zip<br \/>\nunzip elasticsearch-jdbc-1.7.1.0-dist.zip<br \/>\ncd elasticsearch-jdbc-1.7.1.0\/lib<br \/>\ncp mysql-delete-document.sh mysql-oreore.sh<br \/>\n#\u74b0\u5883\u306b\u5408\u308f\u305b\u3066\u53d6\u5f97\u60c5\u5831\u3092\u5909\u66f4\u3057\u307e\u3059<br \/>\nvi mysql-oreore.sh<br \/>\n-----<br \/>\n\"jdbc\" : {<br \/>\n\"url\" : \"jdbc:mysql:\/\/localhost:3306\/[DB\u540d]\u201d,<br \/>\n\"user\" : \"root\",<br \/>\n\"password\" : \"\",<br \/>\n\"sql\" : \"select id as _id, xxxx, xxxx,xxxx from xxxx\u201d<br \/>\n}<br \/>\n-----<br \/>\n.\/mysql-oreore.sh<br \/>\n<\/code><\/p>\n<p>\u203b\u6ce8\u610f\u3068\u3057\u3066\u2019as _id\u2019\u306e\u8a18\u8f09\u304c\u306a\u3044\u3068\u30c7\u30fc\u30bf\u304c\u610f\u56f3\u3057\u306a\u3044id\u3067\u632f\u3089\u308c\u3066\u3057\u307e\u3044\u307e\u3059\u3002<br \/>\n\u30c7\u30fc\u30bf\u4ef6\u6570\u306f\u304b\u306a\u308a\u3042\u308a\u307e\u3057\u305f\u304c\u30011\u79d2\u7a0b\u5ea6\u3067\u51e6\u7406\u304c\u7d42\u308f\u308a\u307e\u3057\u305f\u3002<br \/>\n\u3053\u306e\u51e6\u7406\u3067MySQL\u2192Elasticsearch\u3078\u306e\u30c7\u30fc\u30bf\u6295\u5165\u304c\u5b8c\u4e86\u3067\u3059\u3002<\/p>\n<p>\u5b9f\u884c\u7d50\u679c\u3092\u78ba\u8a8d\u3057\u307e\u3059\u3002<br \/>\n<code>#'jdbc'index\u30c7\u30fc\u30bf\u3092\u53d6\u5f97<br \/>\ncurl -XGET 'http:\/\/localhost:9200\/jdbc\/_search?pretty=true'<br \/>\n#jdbc\u304b\u3089index\u306e\u30c7\u30fc\u30bf\u4ef6\u6570\u3092\u53d6\u5f97<br \/>\ncurl -H 'Content-Type: application\/json' -X GET -d '{\"query\":{\"match_all\":{}},\"size\":0}' http:\/\/localhost:9200\/jdbc\/_search?pretty=true | python -mjson.tool<br \/>\n#\u7d50\u679c<br \/>\n% Total % Received % Xferd Average Speed Time Time Time Current<br \/>\nDload Upload Total Spent Left Speed<br \/>\n100 232 100 197 100 35 2605 462 --:--:-- --:--:-- --:--:-- 2626<br \/>\n{<br \/>\n\"_shards\": {<br \/>\n\"failed\": 0,<br \/>\n\"successful\": 5,<br \/>\n\"total\": 5<br \/>\n},<br \/>\n\"hits\": {<br \/>\n\"hits\": [],<br \/>\n\"max_score\": 0.0,<br \/>\n\"total\": 16295<br \/>\n},<br \/>\n\"timed_out\": false,<br \/>\n\"took\": 31<br \/>\n}<\/code><\/p>\n<p>&#8220;total&#8221;: 16295\u4ef6\u306e\u30c7\u30fc\u30bf\u304c\u6295\u5165\u3055\u308c\u3066\u3044\u308b\u3053\u3068\u78ba\u8a8d\u3067\u304d\u307e\u3057\u305f\u3002<\/p>\n<h2>\u25a0Elasticsearch\u3068MySQL\u306e\u5b9f\u884c\u901f\u5ea6\u3092\u6bd4\u8f03\u3059\u308b<\/h2>\n<p>Apache bench\u3092\u4f7f\u3063\u3066MySQL\u3078\u306e\u30c7\u30fc\u30bf\u53d6\u5f97\u3068\u306e\u901f\u5ea6\u3092\u6bd4\u8f03\u3057\u307e\u3059\u3002<\/p>\n<p>\u307e\u305a\u306f\u9069\u5f53\u306bMySQL\u30d8\u306e\u63a5\u7d9a\u3001json\u3067\u306e\u30ec\u30b9\u30dd\u30f3\u30b9\u3092\u3059\u308bphp\u30d5\u30a1\u30a4\u30eb\u3092\u4f5c\u308a\u3001AB\u5b9f\u884c\u3057\u307e\u3059\u3002<br \/>\n<code>#\u3000AB\u30c6\u30b9\u30c8<br \/>\nab -n 100 -c 1 'http:\/\/localhost:8000\/testDBget.php'<br \/>\n#\u3000\u7d50\u679c(\u629c\u7c8b)<br \/>\nRequests per second: 1.62 [#\/sec] (mean)<br \/>\nTime per request: 618.267 [ms] (mean)<br \/>\nTime per request: 618.267 [ms] (mean, across all concurrent requests)<br \/>\nTransfer rate: 322.72 [Kbytes\/sec] received<br \/>\n<\/code><br \/>\n\u6b21\u306bElasticsearch\u3092\u5b9f\u884c\u3057\u307e\u3059\u3002<br \/>\n<code>#\u3000AB\u30c6\u30b9\u30c8<br \/>\nab -n 100 -c 1 'http:\/\/localhost:9200\/jdbc\/_search?pretty=true'<br \/>\n#\u3000\u7d50\u679c(\u629c\u7c8b)<br \/>\nRequests per second: 1222.40 [#\/sec] (mean)<br \/>\nTime per request: 0.818 [ms] (mean)<br \/>\nTime per request: 0.818 [ms] (mean, across all concurrent requests)<br \/>\nTransfer rate: 45766.15 [Kbytes\/sec] received<\/code><\/p>\n<p>Time per request(\u540c\u6642\u5b9f\u884c\u3057\u305f\u30ea\u30af\u30a8\u30b9\u30c8\u306e\u5e73\u5747\u51e6\u7406\u6642\u9593)\u304c\u3001<br \/>\n\u30fbMySQL\uff1a618.267ms<br \/>\n\u30fbElasticsearch\uff1a0.818ms<br \/>\n\u305d\u306e\u5dee100\u500d\u4ee5\u4e0a\u3001\u5727\u5012\u7684\u306b\u51e6\u7406\u901f\u5ea6\u304c\u901f\u3044\u3067\u3059\u3002<br \/>\n\u5f53\u7136\u74b0\u5883\u306b\u4f9d\u5b58\u3059\u308b\u90e8\u5206\u304c\u3042\u3063\u305f\u308a\u3068\u304b\u3067\u6b63\u78ba\u306a\u6570\u5b57\u304b\u306f\u5fae\u5999\u3067\u3059\u304c\u3001\u9593\u9055\u3044\u306a\u304f\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u306f\u9ad8\u3044\u3067\u3059\u3002<\/p>\n<h2>\u25a0kibana(sense)\u3092\u4f7f\u3044\u30c7\u30fc\u30bf\u3092\u30d3\u30b8\u30e5\u30a2\u30e9\u30a4\u30ba<\/h2>\n<p>kibana(sense)\u3092\u4f7f\u3063\u3066\u30c7\u30fc\u30bf\u3092\u30d3\u30b8\u30e5\u30a2\u30e9\u30a4\u30ba\u5316\u3057\u307e\u3059\u3002<br \/>\n<code>#kibana\u3001sense\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb<br \/>\nwget https:\/\/download.elastic.co\/kibana\/kibana\/kibana-4.3.1-darwin-x64.tar.gz<br \/>\nbin\/kibana plugin --install elastic\/sense<br \/>\n#kibana\u306e\u5b9f\u884c<br \/>\nkibana-4.3.1-darwin-x64\/bin\/kibana<br \/>\n<\/code><br \/>\n\u203b\u30d0\u30fc\u30b8\u30e7\u30f3\u304c\u9023\u52d5\u3057\u3066\u3044\u306a\u3044\u3068\u52d5\u304b\u306a\u3044\u305f\u3081\u3001elasticsearch\u3068\u306e\u30d0\u30fc\u30b8\u30e7\u30f3\u95a2\u4fc2\u306f\u6ce8\u610f\u304c\u5fc5\u8981<br \/>\n\u3053\u308c\u306f\u9069\u5f53\u306b\u3044\u3058\u3063\u305f\u3060\u3051\u3067\u3059\u304c\u3001\u305d\u308c\u3063\u307d\u3044\u30b0\u30e9\u30d5\u304c\u51fa\u305b\u307e\u3057\u305f\u3002<\/p>\n<p><a href=\"https:\/\/vitalify.jp\/blog\/wp-content\/uploads\/2017\/02\/\u30b9\u30af\u30ea\u30fc\u30f3\u30b7\u30e7\u30c3\u30c8-2017-02-05-18.38.07.png\"><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-medium wp-image-15077\" src=\"https:\/\/vitalify.jp\/blog\/wp-content\/uploads\/2017\/02\/\u30b9\u30af\u30ea\u30fc\u30f3\u30b7\u30e7\u30c3\u30c8-2017-02-05-18.38.07-300x186.png\" alt=\"\u30b9\u30af\u30ea\u30fc\u30f3\u30b7\u30e7\u30c3\u30c8 2017-02-05 18.38.07\" width=\"300\" height=\"186\" srcset=\"https:\/\/vitalify.jp\/blog\/wp-content\/uploads\/2017\/02\/\u30b9\u30af\u30ea\u30fc\u30f3\u30b7\u30e7\u30c3\u30c8-2017-02-05-18.38.07-300x186.png 300w, https:\/\/vitalify.jp\/blog\/wp-content\/uploads\/2017\/02\/\u30b9\u30af\u30ea\u30fc\u30f3\u30b7\u30e7\u30c3\u30c8-2017-02-05-18.38.07-768x477.png 768w, https:\/\/vitalify.jp\/blog\/wp-content\/uploads\/2017\/02\/\u30b9\u30af\u30ea\u30fc\u30f3\u30b7\u30e7\u30c3\u30c8-2017-02-05-18.38.07-1024x637.png 1024w, https:\/\/vitalify.jp\/blog\/wp-content\/uploads\/2017\/02\/\u30b9\u30af\u30ea\u30fc\u30f3\u30b7\u30e7\u30c3\u30c8-2017-02-05-18.38.07-1200x746.png 1200w, https:\/\/vitalify.jp\/blog\/wp-content\/uploads\/2017\/02\/\u30b9\u30af\u30ea\u30fc\u30f3\u30b7\u30e7\u30c3\u30c8-2017-02-05-18.38.07.png 1940w\" sizes=\"(max-width: 300px) 85vw, 300px\" \/><\/a>\ufffc<\/p>\n<h2>\u307e\u3068\u3081<\/h2>\n<p>\u307e\u3060\u307e\u3060\u5965\u304c\u6df1\u304f\u3001\u8abf\u6574\u3082\u3044\u308d\u3044\u308d\u5fc5\u8981\u305d\u3046\u3067\u3059\u304c\u3001\u5c0e\u5165\u3059\u308b\u3068\u975e\u5e38\u306b\u7834\u58ca\u529b\u306e\u3042\u308b\u30c4\u30fc\u30eb\u306b\u306a\u308b\u3068\u611f\u3058\u307e\u3057\u305f\u3002<br \/>\n\u7279\u306b\u4e00\u756a\u9a5a\u3044\u305f\u306e\u306f\u3001\u305d\u306e\u51e6\u7406\u901f\u5ea6\u3002<br \/>\n\u5927\u898f\u6a21\u306a\u30b7\u30b9\u30c6\u30e0\u306b\u306a\u3063\u305f\u5834\u5408\u3067\u3082\u3053\u306e\u691c\u7d22\u30a8\u30f3\u30b8\u30f3\u3092\u4f7f\u3048\u3070\u554f\u984c\u306a\u304f\u3055\u3070\u3051\u305d\u3046\u3067\u3059\u3002<br \/>\n\u4eca\u5f8c\u3082\u305c\u3072\u6d3b\u7528\u3057\u3066\u3044\u304d\u305f\u3044\u3067\u3059\u3002<\/p>\n<p>\u4ee5\u4e0b\u53c2\u8003\u306b\u3055\u305b\u3066\u3044\u305f\u3060\u304d\u307e\u3057\u305f\u3002<\/p>\n<p>&#8216;http:\/\/dev.classmethod.jp\/server-side\/elasticsearch-getting-started-05\/<br \/>\n&#8216;http:\/\/dev.classmethod.jp\/server-side\/elasticsearch-getting-started-06\/<br \/>\n&#8216;http:\/\/dev.classmethod.jp\/server-side\/elasticsearch-getting-started-07\/<br \/>\n&#8216;http:\/\/dev.classmethod.jp\/server-side\/elasticsearch-getting-started-08\/<br \/>\n&#8216;https:\/\/www.ossnews.jp\/oss_info\/Elasticsearch<br \/>\n&#8216;https:\/\/www.idcf.jp\/words\/schema.html<\/p>\n<div class='wp_social_bookmarking_light'>\n            <div class=\"wsbl_facebook_like\"><div id=\"fb-root\"><\/div><fb:like href=\"https:\/\/vitalify.jp\/blog\/2017\/02\/elasticsearch_matome.html\" layout=\"button_count\" action=\"like\" share=\"false\" show_faces=\"false\" ><\/fb:like><\/div>\n            <div class=\"wsbl_google_plus_one\"><g:plusone size=\"medium\" annotation=\"none\" href=\"https:\/\/vitalify.jp\/blog\/2017\/02\/elasticsearch_matome.html\" ><\/g:plusone><\/div>\n            <div class=\"wsbl_hatena_button\"><a href=\"\/\/b.hatena.ne.jp\/entry\/https:\/\/vitalify.jp\/blog\/2017\/02\/elasticsearch_matome.html\" class=\"hatena-bookmark-button\" data-hatena-bookmark-title=\"\u5168\u6587\u691c\u7d22\u30a8\u30f3\u30b8\u30f3\u300cElasticsearch\u300d\u3092\u8abf\u3079\u3066\u4f7f\u3063\u3066\u307f\u305f\u8272\u3005\u307e\u3068\u3081\" data-hatena-bookmark-layout=\"standard\" title=\"\u3053\u306e\u30a8\u30f3\u30c8\u30ea\u30fc\u3092\u306f\u3066\u306a\u30d6\u30c3\u30af\u30de\u30fc\u30af\u306b\u8ffd\u52a0\"> <img src=\"\/\/b.hatena.ne.jp\/images\/entry-button\/button-only@2x.png\" alt=\"\u3053\u306e\u30a8\u30f3\u30c8\u30ea\u30fc\u3092\u306f\u3066\u306a\u30d6\u30c3\u30af\u30de\u30fc\u30af\u306b\u8ffd\u52a0\" width=\"20\" height=\"20\" style=\"border: none;\" \/><\/a><script type=\"text\/javascript\" src=\"\/\/b.hatena.ne.jp\/js\/bookmark_button.js\" charset=\"utf-8\" async=\"async\"><\/script><\/div>\n            <div class=\"wsbl_tumblr\"><a href=\"\/\/www.tumblr.com\/share?v=3&u=https%3A%2F%2Fvitalify.jp%2Fblog%2F2017%2F02%2Felasticsearch_matome.html&t=%E5%85%A8%E6%96%87%E6%A4%9C%E7%B4%A2%E3%82%A8%E3%83%B3%E3%82%B8%E3%83%B3%E3%80%8CElasticsearch%E3%80%8D%E3%82%92%E8%AA%BF%E3%81%B9%E3%81%A6%E4%BD%BF%E3%81%A3%E3%81%A6%E3%81%BF%E3%81%9F%E8%89%B2%E3%80%85%E3%81%BE%E3%81%A8%E3%82%81\" title=\"Share on Tumblr\" style=\"display:inline-block; text-indent:-9999px; overflow:hidden; width:81px; height:20px; background:url('\/\/platform.tumblr.com\/v1\/share_1.png') top left no-repeat transparent;\">Share on Tumblr<\/a><\/div>\n            <div class=\"wsbl_twitter\"><a href=\"https:\/\/twitter.com\/share\" class=\"twitter-share-button\" data-url=\"https:\/\/vitalify.jp\/blog\/2017\/02\/elasticsearch_matome.html\" data-text=\"\u5168\u6587\u691c\u7d22\u30a8\u30f3\u30b8\u30f3\u300cElasticsearch\u300d\u3092\u8abf\u3079\u3066\u4f7f\u3063\u3066\u307f\u305f\u8272\u3005\u307e\u3068\u3081\" data-lang=\"ja\">Tweet<\/a><\/div>\n    <\/div>\n<br class='wp_social_bookmarking_light_clear' \/>\n","protected":false},"excerpt":{"rendered":"<p>\u3053\u3093\u306b\u3061\u306f\u3001AWS\u3067\u306fcodedeploy\u304c\u597d\u304d\u306a\u4e2d\u6751\u3067\u3059\u3002 IT\u696d\u754c\u306f\u30c9\u30c3\u30b0\u30a4\u30e4\u30fc\u3068\u8a00\u308f\u308c\u3066\u4e45\u3057\u3044\u3067\u3059\u304c\u3001\u6280\u8853\u306e\u9032\u6b69\u306f\u76ee\u307e\u3050\u308b\u3057\u304f\u9032\u3093\u3067\u3044\u307e\u3059\u3002 \u305d\u308c\u306b\u4f34\u3044\u3001\u4e16\u306e\u4e2d\u304c\u6c42\u3081\u308bWeb\u30b5\u30fc\u30d3\u30b9\u30fb\u30b9\u30de\u30db\u30a2\u30d7\u30ea\u306e\u30b9\u30d4\u30fc\u30c9\u611f\u306f\u65e5\u3005 &hellip; <a href=\"https:\/\/vitalify.jp\/blog\/2017\/02\/elasticsearch_matome.html\" class=\"more-link more_btn\"><span class=\"screen-reader-text\">&#8220;\u5168\u6587\u691c\u7d22\u30a8\u30f3\u30b8\u30f3\u300cElasticsearch\u300d\u3092\u8abf\u3079\u3066\u4f7f\u3063\u3066\u307f\u305f\u8272\u3005\u307e\u3068\u3081&#8221; \u306e<\/span>\u7d9a\u304d\u3092\u8aad\u3080<\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_mi_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0},"categories":[44,1],"tags":[],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/vitalify.jp\/blog\/wp-json\/wp\/v2\/posts\/15065"}],"collection":[{"href":"https:\/\/vitalify.jp\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/vitalify.jp\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/vitalify.jp\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/vitalify.jp\/blog\/wp-json\/wp\/v2\/comments?post=15065"}],"version-history":[{"count":23,"href":"https:\/\/vitalify.jp\/blog\/wp-json\/wp\/v2\/posts\/15065\/revisions"}],"predecessor-version":[{"id":15090,"href":"https:\/\/vitalify.jp\/blog\/wp-json\/wp\/v2\/posts\/15065\/revisions\/15090"}],"wp:attachment":[{"href":"https:\/\/vitalify.jp\/blog\/wp-json\/wp\/v2\/media?parent=15065"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/vitalify.jp\/blog\/wp-json\/wp\/v2\/categories?post=15065"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/vitalify.jp\/blog\/wp-json\/wp\/v2\/tags?post=15065"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}