¸üÐÂʱ¼ä:2018Äê11ÔÂ20ÈÕ15ʱ33·Ö À´Ô´:ÀÖÓã²¥¿Í ä¯ÀÀ´ÎÊý:
¡¡¡¡Elasticsearch¼ò½é
¡¡¡¡ElasticsearchÊÇÒ»¸öʵʱµÄ·Ö²¼Ê½ËÑË÷ºÍ·ÖÎöÒýÇæ¡£Ëü¿ÉÒÔ°ïÖúÄãÓÃǰËùδÓеÄËÙ¶ÈÈ¥´¦Àí´ó¹æÄ£Êý¾Ý¡£
¡¡¡¡Ëü¿ÉÒÔÓÃÓÚÈ«ÎÄËÑË÷£¬½á¹¹»¯ËÑË÷ÒÔ¼°·ÖÎö£¬µ±È»ÄãÒ²¿ÉÒÔ½«ÕâÈýÕß½øÐÐ×éºÏ¡£
¡¡¡¡ElasticsearchÊÇÒ»¸ö½¨Á¢ÔÚÈ«ÎÄËÑË÷ÒýÇæ Apache Lucene™ »ù´¡ÉϵÄËÑË÷ÒýÇæ£¬¿ÉÒÔ˵LuceneÊǵ±½ñ×îÏȽø£¬×î¸ßЧµÄÈ«¹¦ÄÜ¿ªÔ´ËÑË÷ÒýÇæ¿ò¼Ü¡£
¡¡¡¡µ«ÊÇLuceneÖ»ÊÇÒ»¸ö¿ò¼Ü£¬Òª³ä·ÖÀûÓÃËüµÄ¹¦ÄÜ£¬ÐèҪʹÓÃJAVA£¬²¢ÇÒÔÚ³ÌÐòÖм¯³ÉLucene¡£ÐèÒªºÜ¶àµÄѧϰÁ˽⣬²ÅÄÜÃ÷°×ËüÊÇÈçºÎÔËÐеģ¬Luceneȷʵ·Ç³£¸´ÔÓ¡£
¡¡¡¡ElasticsearchʹÓÃLucene×÷ΪÄÚ²¿ÒýÇæ£¬µ«ÊÇÔÚʹÓÃËü×öÈ«ÎÄËÑË÷ʱ£¬Ö»ÐèҪʹÓÃͳһ¿ª·¢ºÃµÄAPI¼´¿É£¬¶ø²»ÐèÒªÁ˽âÆä±³ºó¸´ÔÓµÄLuceneµÄÔËÐÐÔÀí¡£
¡¡¡¡µ±È»Elasticsearch²¢²»½ö½öÊÇLuceneÕâô¼òµ¥£¬Ëü²»µ«°üÀ¨ÁËÈ«ÎÄËÑË÷¹¦ÄÜ£¬»¹¿ÉÒÔ½øÐÐÒÔϹ¤×÷:
¡¡¡¡· ·Ö²¼Ê½ÊµÊ±Îļþ´æ´¢£¬²¢½«Ã¿Ò»¸ö×ֶζ¼±àÈëË÷Òý£¬Ê¹Æä¿ÉÒÔ±»ËÑË÷¡£
¡¡¡¡· ʵʱ·ÖÎöµÄ·Ö²¼Ê½ËÑË÷ÒýÇæ¡£
¡¡¡¡· ¿ÉÒÔÀ©Õ¹µ½ÉϰŲ̀·þÎñÆ÷£¬´¦ÀíPB¼¶±ðµÄ½á¹¹»¯»ò·Ç½á¹¹»¯Êý¾Ý¡£
¡¡¡¡Õâô¶àµÄ¹¦Äܱ»¼¯³Éµ½Ò»Ì¨·þÎñÆ÷ÉÏ£¬Äã¿ÉÒÔÇáËɵØÍ¨¹ý¿Í»§¶Ë»òÕßÈκÎÄãϲ»¶µÄ³ÌÐòÓïÑÔÓëESµÄRESTful API½øÐн»Á÷¡£
¡¡¡¡ElasticsearchµÄÉÏÊÖÊǷdz£¼òµ¥µÄ¡£Ëü¸½´øÁ˺ܶà·Ç³£ºÏÀíµÄĬÈÏÖµ£¬ÕâÈóõѧÕߺܺõرÜÃâÒ»ÉÏÊÖ¾ÍÒªÃæ¶Ô¸´ÔÓµÄÀíÂÛ£¬
¡¡¡¡Ëü°²×°ºÃÁ˾ͿÉÒÔʹÓÃÁË£¬ÓúÜСµÄѧϰ³É±¾¾Í¿ÉÒÔ±äµÃºÜÓÐÉú²úÁ¦¡£
¡¡¡¡Ëæ×ÅԽѧԽÉîÈ룬»¹¿ÉÒÔÀûÓÃElasticsearch¸ü¶à¸ß¼¶µÄ¹¦ÄÜ£¬Õû¸öÒýÇæ¿ÉÒÔºÜÁé»îµØ½øÐÐÅäÖ᣿ÉÒÔ¸ù¾Ý×ÔÉíÐèÇóÀ´¶¨ÖÆÊôÓÚ×Ô¼ºµÄElasticsearch¡£
¡¡¡¡Ê¹Óð¸Àý£º
¡¡¡¡· ά»ù°Ù¿ÆÊ¹ÓÃElasticsearchÀ´½øÐÐÈ«ÎÄËÑ×ö²¢¸ßÁÁÏÔʾ¹Ø¼ü´Ê£¬ÒÔ¼°Ìṩsearch-as-you-type¡¢did-you-meanµÈËÑË÷½¨Ò鹦ÄÜ¡£
¡¡¡¡· Ó¢¹úÎÀ±¨Ê¹ÓÃElasticsearchÀ´´¦Àí·Ã¿ÍÈÕÖ¾£¬ÒÔ±ãÄܽ«¹«ÖÚ¶Ô²»Í¬ÎÄÕµķ´Ó¦ÊµÊ±µØ·´À¡¸ø¸÷λ±à¼¡£
¡¡¡¡· StackOverflow½«È«ÎÄËÑË÷ÓëµØÀíλÖúÍÏà¹ØÐÅÏ¢½øÐнáºÏ£¬ÒÔÌṩmore-like-thisÏà¹ØÎÊÌâµÄÕ¹ÏÖ¡£
¡¡¡¡· GitHubʹÓÃElasticsearchÀ´¼ìË÷³¬¹ý1300ÒÚÐдúÂë¡£
¡¡¡¡· ÿÌ죬Goldman SachsʹÓÃËüÀ´´¦Àí5TBÊý¾ÝµÄË÷Òý£¬»¹ÓкܶàͶÐÐʹÓÃËüÀ´·ÖÎö¹ÉƱÊг¡µÄ±ä¶¯¡£
¡¡¡¡µ«ÊÇElasticsearch²¢²»Ö»ÊÇÃæÏò´óÐÍÆóÒµµÄ£¬Ëü»¹°ïÖúÁ˺ܶàÀàËÆDataDogÒÔ¼°KloutµÄ´´Òµ¹«Ë¾½øÐÐÁ˹¦ÄܵÄÀ©Õ¹¡£
¡¡¡¡ElasticsearchµÄÓÅȱµã:
¡¡¡¡Óŵã
¡¡¡¡1. ElasticsearchÊÇ·Ö²¼Ê½µÄ¡£²»ÐèÒªÆäËû×é¼þ£¬·Ö·¢ÊÇʵʱµÄ£¬±»½Ð×ö”Push replication”¡£
¡¡¡¡2. Elasticsearch Íêȫ֧³Ö Apache Lucene µÄ½Ó½üʵʱµÄËÑË÷¡£
¡¡¡¡3. ´¦Àí¶à×â»§(multitenancy)²»ÐèÒªÌØÊâÅäÖ㬶øSolrÔòÐèÒª¸ü¶àµÄ¸ß¼¶ÉèÖá£
¡¡¡¡4. Elasticsearch ²ÉÓà Gateway µÄ¸ÅÄʹµÃÍ걸·Ý¸ü¼Ó¼òµ¥¡£
¡¡¡¡5. ¸÷½Úµã×é³É¶ÔµÈµÄÍøÂç½á¹¹£¬Ä³Ð©½Úµã³öÏÖ¹ÊÕÏʱ»á×Ô¶¯·ÖÅäÆäËû½Úµã´úÌæÆä½øÐй¤×÷¡£
¡¡¡¡È±µã
¡¡¡¡1. Ö»ÓÐÒ»Ãû¿ª·¢Õß(µ±Ç°Elasticsearch GitHub×éÖ¯ÒѾ²»Ö»Èç´Ë£¬ÒѾÓÐÁËÏ൱»îÔ¾µÄά»¤Õß)
¡¡¡¡2. »¹²»¹»×Ô¶¯(²»Êʺϵ±Ç°ÐµÄIndex Warmup API)
¡¡¡¡Solr¼ò½é
¡¡¡¡Solr(¶Á×÷“solar”)ÊÇApache LuceneÏîÄ¿µÄ¿ªÔ´ÆóÒµËÑË÷ƽ̨¡£ÆäÖ÷Òª¹¦ÄܰüÀ¨È«ÎļìË÷¡¢ÃüÖбêʾ¡¢·ÖÃæËÑË÷¡¢¶¯Ì¬¾ÛÀà¡¢Êý¾Ý¿â¼¯³É£¬ÒÔ¼°¸»Îı¾(ÈçWord¡¢PDF)µÄ´¦Àí¡£SolrÊǸ߶ȿÉÀ©Õ¹µÄ£¬²¢ÌṩÁË·Ö²¼Ê½ËÑË÷ºÍË÷Òý¸´ÖÆ¡£SolrÊÇ×îÁ÷ÐÐµÄÆóÒµ¼¶ËÑË÷ÒýÇæ£¬Solr4»¹Ôö¼ÓÁËNoSQLÖ§³Ö¡£
¡¡¡¡SolrÊÇÓÃJava±àд¡¢ÔËÐÐÔÚServletÈÝÆ÷(Èç Apache Tomcat »òJetty)µÄÒ»¸ö¶ÀÁ¢µÄÈ«ÎÄËÑË÷·þÎñÆ÷¡£Solr²ÉÓÃÁË Lucene Java ËÑË÷¿âΪºËÐĵÄÈ«ÎÄË÷ÒýºÍËÑË÷£¬²¢¾ßÓÐÀàËÆRESTµÄHTTP/XMLºÍJSONµÄAPI¡£SolrÇ¿´óµÄÍⲿÅäÖù¦ÄÜʹµÃÎÞÐè½øÐÐJava±àÂ룬±ã¿É¶Ô Æä½øÐе÷ÕûÒÔÊÊÓ¦¶àÖÖÀàÐ͵ÄÓ¦ÓóÌÐò¡£SolrÓÐÒ»¸ö²å¼þ¼Ü¹¹£¬ÒÔÖ§³Ö¸ü¶àµÄ¸ß¼¶¶¨ÖÆ¡£
¡¡¡¡ÒòΪ2010ÄêApache Lucene ºÍ Apache Solr ÏîÄ¿ºÏ²¢£¬Á½¸öÏîÄ¿ÊÇÓÉͬһ¸öApacheÈí¼þ»ù½ð»á¿ª·¢ÍŶÓÖÆ×÷ʵÏֵġ£Ìáµ½¼¼Êõ»ò²úƷʱ£¬Lucene/Solr»òSolr/LuceneÊÇÒ»ÑùµÄ¡£
¡¡¡¡SolrµÄÓÅȱµã
¡¡¡¡Óŵã
¡¡¡¡1. SolrÓÐÒ»¸ö¸ü´ó¡¢¸ü³ÉÊìµÄÓû§¡¢¿ª·¢ºÍ¹±Ï×ÕßÉçÇø¡£
¡¡¡¡2. Ö§³ÖÌí¼Ó¶àÖÖ¸ñʽµÄË÷Òý£¬È磺HTML¡¢PDF¡¢Î¢Èí Office ϵÁÐÈí¼þ¸ñʽÒÔ¼° JSON¡¢XML¡¢CSV µÈ´¿Îı¾¸ñʽ¡£
¡¡¡¡3. Solr±È½Ï³ÉÊì¡¢Îȶ¨¡£
¡¡¡¡4. ²»¿¼Âǽ¨Ë÷ÒýµÄͬʱ½øÐÐËÑË÷£¬Ëٶȸü¿ì¡£
¡¡¡¡È±µã
¡¡¡¡1. ½¨Á¢Ë÷Òýʱ£¬ËÑË÷ЧÂÊϽµ£¬ÊµÊ±Ë÷ÒýËÑË÷ЧÂʲ»¸ß¡£
¡¡¡¡ElasticsearchÓëSolrµÄ±È½Ï
¡¡¡¡1.µ±µ¥´¿µÄ¶ÔÒÑÓÐÊý¾Ý½øÐÐËÑË÷ʱ£¬Solr¸ü¿ì¡£
¡¡¡¡2.µ±ÊµÊ±½¨Á¢Ë÷Òýʱ, Solr»á²úÉúio×èÈû£¬²éѯÐÔÄܽϲî, Elasticsearch¾ßÓÐÃ÷ÏÔµÄÓÅÊÆ¡£
¡¡¡¡3.Ëæ×ÅÊý¾ÝÁ¿µÄÔö¼Ó£¬SolrµÄËÑË÷ЧÂÊ»á±äµÃ¸üµÍ£¬¶øElasticsearchȴûÓÐÃ÷ÏԵı仯¡£
¡¡¡¡×ÛÉÏËùÊö£¬SolrµÄ¼Ü¹¹²»ÊʺÏʵʱËÑË÷µÄÓ¦Óá£
¡¡¡¡ElasticsearchÓë Solr µÄ±È½Ï×ܽá
¡¡¡¡· ¶þÕß°²×°¶¼ºÜ¼òµ¥;
¡¡¡¡· Solr ÀûÓà Zookeeper ½øÐзֲ¼Ê½¹ÜÀí£¬¶øElasticsearch ×ÔÉí´øÓзֲ¼Ê½Ðµ÷¹ÜÀí¹¦ÄÜ;
¡¡¡¡· Solr Ö§³Ö¸ü¶à¸ñʽµÄÊý¾Ý£¬¶øElasticsearch ½öÖ§³ÖjsonÎļþ¸ñʽ;
¡¡¡¡· Solr ¹Ù·½ÌṩµÄ¹¦Äܸü¶à£¬¶øElasticsearch ±¾Éí¸ü×¢ÖØÓÚºËÐŦÄÜ£¬¸ß¼¶¹¦ÄܶàÓеÚÈý·½²å¼þÌṩ;
¡¡¡¡· Solr ÔÚ´«Í³µÄËÑË÷Ó¦ÓÃÖбíÏÖºÃÓÚElasticsearch£¬µ«ÔÚ´¦ÀíʵʱËÑË÷Ó¦ÓÃʱЧÂÊÃ÷ÏÔµÍÓÚ Elasticsearch¡£
¡¡¡¡Solr ÊÇ´«Í³ËÑË÷Ó¦ÓõÄÓÐÁ¦½â¾ö·½°¸£¬µ«Elasticsearch ¸üÊÊÓÃÓÚÐÂÐ˵ÄʵʱËÑË÷Ó¦Óá£
×÷ÕߣºÀÖÓã²¥¿ÍJavaEEÅàѵѧԺ
Ê×·¢£ºhttp://java.itcast.cn
±±¾©Ð£Çø