±à¼ÍƼö: |
±¾ÎÄÖ÷Òª½éÉÜÁËElasticsearchÊÇʲô£¿ÎªÊ²Ã´Ñ¡ÔñElasticsearch£¿ÈçºÎʹÓÃElasticsearch£¿
±¾ÎÄÀ´×ÔÓÚViµÄ¼¼Êõ²©¿Í£¬ÓÉ»ðÁú¹ûÈí¼þAnna±à¼¡¢ÍƼö¡£ |
|
ElasticsearchÊÇʲô£¿
ElasticsearchÊÇÒ»¸ö»ùÓÚLuceneµÄËÑË÷·þÎñÆ÷£¬ElasticsearchÒ²ÊÇʹÓÃJava±àдµÄ£¬ËüµÄÄÚ²¿Ê¹ÓÃLucene×öË÷ÒýÓëËÑË÷£¬µ«ÊÇËüµÄÄ¿µÄÊÇʹÓÃÈ«ÎļìË÷±äµÃ¼òµ¥£¬Í¨¹ýÒþ²ØLuceneµÄ¸´ÔÓÐÔ£¬È¡¶ø´úÖ®µÄÌṩһÌ×¼òµ¥Ò»ÖµÄRESTful
API¡£
Elasticsearch ²»½ö½öÊÇ Lucene£¬²¢ÇÒÒ²²»½ö½öÖ»ÊÇÒ»¸öÈ«ÎÄËÑË÷ÒýÇæ¡£Ëü¿ÉÒÔ±»ÏÂÃæÕâÑù׼ȷµÄÐÎÈÝ£º
Ò»¸ö·Ö²¼Ê½µÄʵʱÎĵµ´æ´¢£¬Ã¿¸ö×Ö¶Î ¿ÉÒÔ±»Ë÷ÒýÓëËÑË÷
Ò»¸ö·Ö²¼Ê½ÊµÊ±·ÖÎöËÑË÷ÒýÇæ
ÄÜʤÈÎÉϰٸö·þÎñ½ÚµãµÄÀ©Õ¹£¬²¢Ö§³Ö PB ¼¶±ðµÄ½á¹¹»¯»òÕ߷ǽṹ»¯Êý¾Ý
ÃæÏòÎĵµ
ElasticsearchÊÇÃæÏòÎĵµ£¬¼´ÎĵµÊÇ¿ÉÒÔ±»Ë÷ÒýµÄÐÅÏ¢µÄ»ù±¾µ¥Î»£¬¶øÎĵµµÄ¸ñʽÊÇÔÚNoSQLÖг£ÓõÄJSON£¬¹ØÓÚ¹ØÏµÐÍÊý¾Ý¿âºÍElasticsearchÖ®¼äһЩÃû´ÊµÄ¹ØÏµµÄ¶ÔÓ¦¿ÉÒÔÓÃÒÔϵıí¸ñÀ´±íʾ£¬·½±ãÎÒÃǺóÃæµÄÓ¦Óãº

ÕâÀïÐèҪעÒâµÄÊÇÎĵµµÄ¸ñʽ²»Êǹ̶¨µÄ£¬Í¬Ò»¸öTypeϵIJ»Í¬Îĵµ¿ÉÒÔÓµÓв»Í¬µÄ¸ñʽ
ΪʲôѡÔñElasticsearch£¿
·á¸»µÄ²éѯ·½Ê½¡ª¡ªElasticsearchÄܹ»Ö´Ðм°ºÏ²¢¶àÖÖÀàÐ͵ÄËÑË÷£¨½á¹¹»¯Êý¾Ý¡¢·Ç½á¹¹»¯Êý¾Ý¡¢µØÀíλÖá¢Ö¸±ê£©£¬ËÑË÷·½Ê½ËæÐĶø±ä¡£
¼«ËٵIJéѯËÙ¶È¡ª¡ªElasticsearchͨ¹ýÓÐÏÞ״̬ת»»Æ÷ʵÏÖÁËÓÃÓÚÈ«ÎļìË÷µÄµ¹ÅÅË÷Òý£¬ÊµÏÖÁËÓÃÓÚ´æ´¢ÊýÖµÊý¾ÝºÍµØÀíλÖÃÊý¾ÝµÄ
BKD Ê÷£¬ÒÔ¼°ÓÃÓÚ·ÖÎöµÄÁд洢¡£Ã¿¸öÊý¾Ý¶¼±»±àÈëÁËË÷Òý¡£
¿É¹ÛµÄ¿ÉÀ©Õ¹ÐÔ¡ª¡ªElasticsearchÄܹ»Ë®Æ½À©Õ¹£¬Ã¿ÃëÖÓ¿É´¦Àíº£Á¿Ê¼þ£¬Í¬Ê±Äܹ»×Ô¶¯¹ÜÀíË÷ÒýºÍ²éѯÔÚ¼¯ÈºÖеķֲ¼·½Ê½£¬¿ÉÒÔÔÚ³ÐÔØÁË
PB ¼¶Êý¾ÝµÄ³É°ÙÉÏǧ̨·þÎñÆ÷ÉÏÔËÐС£
Ç¿´óµÄµ¯ÐÔ±£ÕÏ¡ª¡ªÓ²¼þ¹ÊÕÏ¡£ÍøÂç·Ö¸î¡£Elasticsearch ¼ì²âÕâЩ¹ÊÕϲ¢È·±£¼¯Èº£¨ºÍÊý¾Ý£©µÄ°²È«ÐԺͿÉÓÃÐÔ¡£Í¨¹ý¿ç¼¯Èº¸´Öƹ¦ÄÜ£¬¸¨Öú¼¯Èº¿ÉÒÔ×÷ΪÈȱ¸·ÝËæÊ±Í¶ÈëʹÓá£
ÈçºÎʹÓÃElasticsearch£¿
°²×°Elasticsearch
https://www.elastic.co/cn/downloads/elasticsearch
ÕâÀïÎÒÃÇÑ¡ÔñµÄÊÇ6.2.2°æ±¾µÄES£¬ÒòΪÎÒÔÚspring-data-elasticsearchµÄgithubÉÏ¿´µ½×îа汾µÄÖ§³ÖµÄESÊÇ6.2.2

ÆäÖÐ3.2.x°æ±¾ÉÐδ·¢²¼Õýʽ°æ£¬ËùÒÔÕâÀïÑ¡ÔñÁË×îеÄ3.1.8°æ±¾£¬ÏÂÃæÎÒÃÇÇл»µ½°²×°Ä¿Â¼µÄbinĿ¼Ï£¬Æô¶¯es£º
ÕâÀïÌí¼Ó & ·ûºÅµÄ×÷ÓÃÊÇÈÃËüÔÚºǫ́ÔËÐС£

¿´µ½Õâ¸ö¾Í˵Ã÷Æô¶¯³É¹¦ÁË~
°²×°ÖÐÎÄ·Ö´ÊÆ÷iK
ÒòΪ£¬ÔÚÎÒÃÇÈÕ³£µÄÓ¦ÓÃÖУ¬ÎÒÃÇÓõıȽ϶àµÄ¶¼ÊÇÖÐÎĵķִʣ¬ËùÒÔÕâÀïÎÒÃÇÐèÒªÒ»¸öÖÐÎÄµÄ·Ö´ÊÆ÷
Ê×ÏÈǰÍùgithubÉÏÏÂÔØÓëES°æ±¾¶ÔÓ¦µÄzip°ü
https://github.com/medcl/elasticsearch-analysis-ik/releases
È»ºóÔÚesµÄ°²×°Ä¿Â¼ÏµÄpluginsÏÂн¨Ò»¸öikµÄĿ¼£¬½«zip°ü½âѹµ½¸ÃĿ¼ÏÂÖØÆôes¼´¿É~

ÔÚesµÄÆô¶¯ÈÕÖ¾Öп´µ½Õâ¸ö˵Ã÷²å¼þÒѾ°²×°²¢Æô¶¯³É¹¦£¡
µ½ÕâÀÎÒÃǵÄǰÆÚ×¼±¸¹¤×÷¾ÍÒѾ½áÊøÁË£¬ÏÂÃæµÄ¾ÍÊÇÔÚSpring BootÏîÄ¿ÖнøÐвÙ×÷ÁË~
Ìí¼ÓpomÒÀÀµ
ÎÒÃÇÊ×ÏÈÔÚpom.xmlÖÐÌí¼Óspring-data-elasticsearchµÄÒÀÀµ£¨Çúڰ壡£¡ÕâÀïµÄ°æ±¾Ò»¶¨ÒªÈ¥²Î¿¼Ò»Ï¶ÔÓ¦µÄESµÄ°æ±¾£¬²»È»¾Í»áÒýÆð°æ±¾¼æÈÝÐÔÎÊÌâ¶ø±¨´í£¡£©£º
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-elasticsearch</artifactId>
<version>3.1.8.RELEASE</version>
</dependency> |
ÒÀÀµÒѾÌí¼ÓÍê±Ï£¬ÏÂÃæÎÒÃǾÍͨ¹ý¼òµ¥µÄÅäÖÃÀ´Íê³ÉCRUD
CRUD
ÕâÀïµÄÅäÖÃÐèҪעÒâÒ»¸öµã£¬ÎÒÃÇ·ÃÎʵÄ9200ÊÇHTTPµÄ¶Ë¿ÚºÅ£¬¶øÊ¹ÓÃJavaµÄʱºòÐèÒªÅäÖóÉ9300£º
spring:
data:
elasticsearch:
cluster-name: my-applicatioon
cluster-nodes: 127.0.0.1:9300 |
ÔÚÆô¶¯ÈÕÖ¾ÖУ¬ÎÒÃÇ¿ÉÒÔ¿´µ½ÕâÒ»µã£º

È»ºóÎÒÃÇͨ¹ý×¢½âÀ´Íê³ÉÒ»¸öindexºÍmappingµÄ´´½¨£¨¼´¶ÔÓ¦¹ØÏµÐÍÊý¾Ý¿âÖеĿâºÍ±í£©
@Data
@Document(indexName = "test",type =
"article")
public class Article implements Serializable {
private Long id;
@Field(type= FieldType.Text,analyzer = "ik_max_word")
private String title;
private String content;
} |
@Filed×¢½âÖеÄÊôÐÔ¿ÉÒÔ¶Ô·Ö´ÊÆ÷½øÐÐÅäÖÃanalyzer = "ik_max_word"£¬ÕâÑù¾Í¿ÉÒÔÔÚ²éѯ±êÌâµÄʱºòʹÎÒÃǵÄÖÐÎÄ·Ö´ÊÆ÷ÁË~
ÕâÑù£¬ÎÒÃǾʹ´½¨ÁËÒ»¸öindex£¨database£©ÃûΪtest£¬²¢Ð½¨Ò»¸ötype£¨table£©ÃûΪarticle¡£
ÏÂÃæ£¬ÎÒÃÇÈç¹ûÏëÒªÍê³ÉCRUD£¬Ö»ÐèÒª´´½¨Ò»¸ö½Ó¿ÚÈ¥¼Ì³ÐElasticsearchRepository¼´¿É£¬ÈçÏ£º
public interface
ESDao extends ElasticsearchRepository<Article,Long>
{
} |
È»ºó£¬ÎÒÃǾͿÉÒÔÔÚÎÒÃÇÏîÄ¿ÕâÑùÈ¥ÓÃÁË~

ºÍJPAÒ»Ñù·½±ã£¬ÎÒÃÇÕâʱ¾Í¿ÉÒÔ°ÑESµ±×öMySQLÈ¥²Ù×÷¼´¿É~
ÍêÕûµÄDemo´úÂëÎÒÒѾÉÏ´«µ½ÁËgithub£¬»¶Ófork star
pr
|