{"id":13883,"date":"2014-01-16T21:46:43","date_gmt":"2014-01-16T12:46:43","guid":{"rendered":"http:\/\/lab.synergy-marketing.co.jp\/?p=7512"},"modified":"2018-11-14T16:33:52","modified_gmt":"2018-11-14T07:33:52","slug":"solr-vs-elasticsearch-document-indexing","status":"publish","type":"post","link":"https:\/\/www.techscore.com\/blog\/2014\/01\/16\/solr-vs-elasticsearch-document-indexing\/","title":{"rendered":"Solr vs elasticsearch \u985e\u4f3c\u6587\u66f8\u691c\u7d22\uff08\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u306e\u767b\u9332\uff09"},"content":{"rendered":"<p>\u3053\u3093\u306b\u3061\u306f\u3001\u99ac\u5834\u3067\u3059\u3002<br \/>\n<a href=\"http:\/\/lab.synergy-marketing.co.jp\/blog\/other\/solr-vs-elasticsearch-japanese-analysis-settings\" title=\"Solr vs elasticsearch  \u985e\u4f3c\u6587\u66f8\u691c\u7d22 \uff08\u65e5\u672c\u8a9e\u89e3\u6790\u306e\u8a2d\u5b9a\uff09\" target=\"_blank\">\u524d\u56de<\/a>\u306b\u7d9a\u304d\u3001\u5168\u6587\u691c\u7d22\u30a8\u30f3\u30b8\u30f3\u306eSolr \u3068\u3000elasticsearch\u306e\u6bd4\u8f03\u3092\u884c\u3044\u305f\u3044\u3068\u601d\u3044\u307e\u3059\u3002\u4eca\u56de\u306f\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u306e\u767b\u9332\u3067\u3059\u3002<\/p>\n<p>\u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u30d7\u30ed\u30b0\u30e9\u30e0\u306fScala\u3067\u5b9f\u88c5\u3057\u307e\u3059\u3002\u3069\u3061\u3089\u3082Java\u306eAPI \u3092\u63d0\u4f9b\u3057\u3066\u3044\u308b\u306e\u3067\u3001\u305d\u308c\u3092\u5229\u7528\u3057\u3088\u3046\u3068\u601d\u3044\u307e\u3059\u3002<\/p>\n<p>\u203b\u3000\u3053\u306e\u8a18\u4e8b\u3067\u306f\u3001Solr 4.6.0 \u3068elasticsearch 0.90 \u306e\u6bd4\u8f03\u3092\u884c\u3044\u307e\u3059\u3002<\/p>\n<h3>Solr \u306e\u5834\u5408<\/h3>\n<p>Solr\u3067Java \u30af\u30e9\u30a4\u30a2\u30f3\u30c8 API\u3092\u5229\u7528\u3059\u308b\u5834\u5408\u3001sbt \u306b\u4ee5\u4e0b\u306ejar\u3092\u767b\u9332\u3057\u307e\u3059\u3002<\/p>\n<pre lang=\"scala\">\r\n  \"org.apache.solr\" % \"solr-solrj\" % \"4.6.0\"\r\n<\/pre>\n<p>\u6b21\u306b\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u3092\u767b\u9332\u3059\u308b\u30b5\u30f3\u30d7\u30eb\u30b3\u30fc\u30c9\u3067\u3059\u3002<\/p>\n<pre lang=\"scala\">\r\nimport org.apache.solr.client.solrj.impl.HttpSolrServer\r\nimport org.apache.solr.common.SolrInputDocument\r\n\r\nimport java.util.Date\r\n\r\nobject SolrAddDoc {\r\n \r\n   def addDocument(id : String, title: String, body : String, date : Date){\r\n      val url = \"http:\/\/localhost:8983\/solr\"\r\n      val server = new HttpSolrServer(url)\r\n      val doc = new SolrInputDocument()\r\n      doc.addField(\"id\", id)\r\n      doc.addField(\"title\", title)\r\n      doc.addField(\"body\", body)\r\n      doc.addField(\"published_at\", date)\r\n      server.add(doc)\r\n      println(server.commit())\r\n  }\r\n\r\n}\r\n<\/pre>\n<p>addField\u30e1\u30bd\u30c3\u30c9\u3067\u6307\u5b9a\u3059\u308b\u30d5\u30a3\u30fc\u30eb\u30c9\u306e\u540d\u524d\u3068\u5024\u306e\u578b\u306f\u3001\u524d\u56deschema.xml \u3067\u8a2d\u5b9a\u3057\u305f\u3082\u306e\u3068\u540c\u3058\u3067\u3059\u3002<\/p>\n<h3>elasticsearch\u306e\u5834\u5408<\/h3>\n<p>elasticsearch \u306eJava \u306eAPI\u3092\u5229\u7528\u3059\u308b\u5834\u5408\u3001sbt\u306b\u4ee5\u4e0b\u306ejar\u3092\u767b\u9332\u3057\u307e\u3059\u3002<\/p>\n<pre lang=\"scala\">\r\n  \"org.elasticsearch\" % \"elasticsearch\" % \"0.90.7\"\r\n<\/pre>\n<p>\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u306f\u4ee5\u4e0b\u306e\u3088\u3046\u306b\u767b\u9332\u3057\u307e\u3059\u3002<\/p>\n<pre lang=\"scala\">\r\nimport java.text.SimpleDateFormat\r\nimport java.util.Date\r\nimport org.elasticsearch.client.transport.TransportClient\r\nimport org.elasticsearch.common.settings.ImmutableSettings\r\nimport org.elasticsearch.common.transport.InetSocketTransportAddress\r\n\r\nobject ElasticsearchAddDocSpec {\r\n\r\n    def addDocument(id : String, title: String, body : String, date : Date){\r\n       val settings = ImmutableSettings.settingsBuilder()\r\n         .put(\"client.transport.sniff\", false).build()\r\n       val client = new TransportClient(settings)\r\n         .addTransportAddress(new InetSocketTransportAddress(\"localhost\", 9300))\r\n\r\n       val json = new util.HashMap[String, Object]()\r\n       json.put(\"title\", title)\r\n       json.put(\"body\", body)\r\n       json.put(\"published_at\", new SimpleDateFormat(\"yyyy\/MM\/dd\").format(date))\r\n       val response = client.prepareIndex(\"test\", \"docs\", id.toString).setSource(json).execute.actionGet()\r\n       println(response.getId)\r\n       client.close()\r\n    }\r\n\r\n}\r\n<\/pre>\n<p>elasticsearch\u3067\u306f\u3001\u3042\u3089\u304b\u3058\u3081\u30b9\u30ad\u30fc\u30de\u3092\u5b9a\u7fa9\u3057\u3066\u304a\u304f\u5fc5\u8981\u306f\u3042\u308a\u307e\u305b\u3093\u3002HashMap\u306b\u8a2d\u5b9a\u3057\u305f\u540d\u524d\u3068\u578b\u306e\u901a\u308a\u306b\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u3092\u767b\u9332\u3057\u3066\u304f\u308c\u307e\u3059\u3002<br \/>\nTransportAddress \u3067\u6307\u5b9a\u3059\u308b\u30a2\u30c9\u30ec\u30b9\u306e\u30dd\u30fc\u30c8\u756a\u53f7\u306f9300 \u3067\u3001REST API\u306e\u30dd\u30fc\u30c8\u756a\u53f7(9200)\u3068\u7570\u306a\u308b\u306e\u3067\u3001\u6ce8\u610f\u304c\u5fc5\u8981\u3067\u3059\u3002<\/p>\n<h3>\u307e\u3068\u3081<\/h3>\n<p>\u4eca\u56de\u306f\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u306e\u767b\u9332\u306b\u3064\u3044\u3066\u6bd4\u8f03\u3057\u307e\u3057\u305f\u3002\u30d7\u30ed\u30b0\u30e9\u30e0\u306fMap\u3092\u4f5c\u3063\u3066\u6e21\u3059\u5f62\u5f0f\u306a\u306e\u3067\u3001\u4e21\u8005\u307b\u3068\u3093\u3069\u5dee\u304c\u306a\u3044\u3001\u3068\u611f\u3058\u307e\u3057\u305f\u3002<\/p>\n<p>\u6b21\u56de\uff08\u6700\u7d42\u56de\uff09\u306f\u3001\u985e\u4f3c\u6587\u66f8\u691c\u7d22\u306e\u30d7\u30ed\u30b0\u30e9\u30e0\u306e\u6bd4\u8f03\u3092\u3057\u307e\u3059\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u3053\u3093\u306b\u3061\u306f\u3001\u99ac\u5834\u3067\u3059\u3002<br \/>\n\u524d\u56de\u306b\u7d9a\u304d\u3001\u5168\u6587\u691c\u7d22\u30a8\u30f3\u30b8\u30f3\u306eSolr \u3068\u3000elasticsearch\u306e\u6bd4\u8f03\u3092\u884c\u3044\u305f\u3044\u3068\u601d\u3044\u307e\u3059\u3002\u4eca\u56de\u306f\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u306e\u767b\u9332\u3067\u3059\u3002<\/p>\n<p>\u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u30d7\u30ed\u30b0\u30e9\u30e0\u306fScala\u3067\u5b9f\u88c5\u3057\u307e\u3059\u3002<br \/><a href=\"https:\/\/www.techscore.com\/blog\/2014\/01\/16\/solr-vs-elasticsearch-document-indexing\/\">\u7d9a\u304d\u3092\u8aad\u3080...<\/a><\/p>\n","protected":false},"author":23,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[255,18],"tags":[],"_links":{"self":[{"href":"https:\/\/www.techscore.com\/blog\/wp-json\/wp\/v2\/posts\/13883"}],"collection":[{"href":"https:\/\/www.techscore.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.techscore.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.techscore.com\/blog\/wp-json\/wp\/v2\/users\/23"}],"replies":[{"embeddable":true,"href":"https:\/\/www.techscore.com\/blog\/wp-json\/wp\/v2\/comments?post=13883"}],"version-history":[{"count":6,"href":"https:\/\/www.techscore.com\/blog\/wp-json\/wp\/v2\/posts\/13883\/revisions"}],"predecessor-version":[{"id":13981,"href":"https:\/\/www.techscore.com\/blog\/wp-json\/wp\/v2\/posts\/13883\/revisions\/13981"}],"wp:attachment":[{"href":"https:\/\/www.techscore.com\/blog\/wp-json\/wp\/v2\/media?parent=13883"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.techscore.com\/blog\/wp-json\/wp\/v2\/categories?post=13883"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.techscore.com\/blog\/wp-json\/wp\/v2\/tags?post=13883"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}