ÊÖÊÖ±¾ÉÙÅ®µÄÐÄÄÐŮδÍê»éǰµÄ½û¼É_ÈËÃÇ_ʱ´ú_ÂüÄÈ"/> Ô¸Äã²»±¯²»Ï²²»×ÔÁ¯£¬Ô¸Äã²»±°²»¿º²»×Ô̾£¬Ô¸ÄãÒ»Éú¿ÉËæÓö¶ø°²£¬Ò»ÉúÈȰ®²»Òź¶¡£"/>

ÌÚ²©tengbo9885¹ÙÍø

ÊÖÊÖ±¾ÉÙÅ®µÄÐÄÄÐŮδÍê»éǰµÄ½û¼É_ÈËÃÇ_ʱ´ú_ÂüÄÈ

ÊÖÊÖ±¾ÉÙÅ®µÄÐÄÄÐŮδÍê»éǰµÄ½û¼É_ÈËÃÇ_ʱ´ú_ÂüÄÈ

Á¬Ã¦²¥·Å ÊÕ²Ø

¡¶ÊÖÊÖ±¾ÉÙÅ®µÄÐÄÄÐŮδÍê»éǰµÄ½û¼É_ÈËÃÇ_ʱ´ú_ÂüÄÈ¡·¾çÇé¼ò½é£ºÔ¸Äã²»±¯²»Ï²²»×ÔÁ¯Ô¸Äã²»±°²»¿º²»×Ô̾Ô¸ÄãÒ»Éú¿ÉËæÓö¶ø°²Ò»ÉúÈȰ®²»Òź¶ËµÕæ»°ÎÒµ¹ÊÇҪллÄãÄØºÃºÃ½ÓÊÜÎÒµÄÕâ·ÝлÀñ°É°×Äý¿áº®Ð¦¸¡ÏÖÔÚËÄÏÉÑÛǰµÄÓ°ÏñÔ½±äÔ½µ­×îÖÕ³¹µ×ÏûÊÅÊÖÊÖ±¾ÉÙÅ®µÄÐÄÄÐŮδÍê»éǰµÄ½û¼É_ÈËÃÇ_ʱ´ú_ÂüÄÈElasticSearchÑо¿2021-04-27 11:15¡¤Ëæ·èElasticSearchÏÈÈÝESÏà¹ØÊÖÒÕÎĵµÁ¼¾Ã֮ǰ¿´µÄÒ»ÃÅÊÖÒÕʱ¼ä³¤²»È¥Ñо¿¾Í»áÈÝÒ×ÍüÁËÓ¦ÓÐЩС»ï°éµÄÒªÇóÏ£ÍûÎÒ×öÒ»ÆÚESÊÖÒÕרÀ¸ÎҾͰÑÒÔǰ¿´¹ýµÄÏà¹ØÎĵµºÍÌõ¼ÇÕûÀíÕûÀí¸ø¸÷ÈË·ÖÏíÏÂElasticSearchÏÈÈÝÏÈÈݹٷ½ÍøÖ·£ºhttps://www.elastic.co/cn/products/elasticsearchGithub£ºhttps://github.com/elastic/elasticsearch×ܽ᣺1¡¢elasticsearchÊÇÒ»¸ö»ùÓÚLuceneµÄ¸ßÀ©Õ¹µÄÂþÑÜʽËÑË÷·þÎñÆ÷Ö§³Ö¿ªÏä¼´ÓÃ2¡¢elasticsearchÒþ²ØÁËLuceneµÄÖØ´óÐÔ¶ÔÍâÌṩRestful ½Ó¿ÚÀ´²Ù×÷Ë÷Òý¡¢ËÑË÷Í»³öÓŵ㣺1.À©Õ¹ÐԺÿɰ²ÅÅÉϰŲ̀·þÎñÆ÷¼¯Èº´¦Öóͷ£PB¼¶Êý¾Ý2.½üʵʱµØÈ¥Ë÷ÒýÊý¾Ý¡¢ËÑË÷Êý¾ÝesºÍsolrÑ¡ÔñÄĸö1.ÈôÊÇÄ㹫˾ÏÖÔÚÓõÄsolr¿ÉÒÔÖª×ãÐèÇó¾Í²»Òª»»ÁË2.ÈôÊÇÄ㹫˾׼±¸¾ÙÐÐÈ«ÎļìË÷ÏîÄ¿µÄ¿ª·¢½¨ÒéÓÅÏÈ˼Á¿elasticsearchÓÉÓÚÏñGithubÕâÑù´ó¹æÄ£µÄËÑË÷¶¼ÔÚÓÃËüÔ­ÀíÓëÓ¦ÓÃË÷Òý½á¹¹ÏÂͼÊÇElasticSearchµÄË÷Òý½á¹¹ϱßÐþÉ«²¿·ÖÊÇÎïÀí½á¹¹Éϱ߻ÆÉ«²¿·ÖÊÇÂß¼­½á¹¹Âß¼­½á¹¹Ò»¨ÇΪÁ˸üºÃµÄÈ¥ÐÎòElasticSearchµÄÊÂÇéÔ­Àí¼°È¥Ê¹ÓÃÎïÀí½á¹¹ÖеÄË÷ÒýÎļþÂß¼­½á¹¹²¿·ÖÊÇÒ»¸öµ¹ÅÅË÷Òý±í£º1¡¢½«ÒªËÑË÷µÄÎĵµÄÚÈÝ·Ö´ÊËùÓв»Öظ´µÄ´Ê×éÒòËØ´ÊÁбí2¡¢½«ËÑË÷µÄÎĵµ×îÖÕÒÔDocument·½·¨´æ´¢ÆðÀ´3¡¢Ã¿¸ö´ÊºÍdocment¶¼ÓйØÁªÈçÏ£ºÏÖÔÚÈôÊÇÎÒÃÇÏëËÑË÷ quick brown ÎÒÃÇÖ»ÐèÒª²éÕÒ°üÀ¨Ã¿¸ö´ÊÌõµÄÎĵµ£ºÁ½¸öÎĵµ¶¼Æ¥Åä¿ÉÊǵÚÒ»¸öÎĵµ±ÈµÚ¶þ¸öÆ¥Åä¶È¸ü¸ßÈôÊÇÎÒÃÇʹÓýöÅÌËãÆ¥Åä´ÊÌõÊýÄ¿µÄ¼òÆÓ ÏàËÆÐÔËã·¨ÄÇôÎÒÃÇ¿ÉÒÔ˵¹ØÓÚÎÒÃÇÅÌÎʵÄÏà¹ØÐÔÀ´½²µÚÒ»¸öÎĵµ±ÈµÚ¶þ¸öÎĵµ¸ü¼ÑRESTfulÓ¦ÓÃÒªÁìÔõÑùʹÓÃesElasticsearchÌṩ RESTful Api½Ó¿Ú¾ÙÐÐË÷Òý¡¢ËÑË÷²¢ÇÒÖ§³Ö¶àÖÖ¿Í»§¶ËÏÂͼÊÇesÔÚÏîÄ¿ÖеÄÓ¦Ó÷½·¨£º1£©Óû§ÔÚǰ¶ËËÑË÷Òªº¦×Ö2£©ÏîÏÖÔÚ¶Ëͨ¹ýhttp·½·¨ÇëÇóÏîÄ¿·þÎñ¶Ë3£©ÏîÄ¿·þÎñ¶Ëͨ¹ýHttp RESTful·½·¨ÇëÇóES¼¯Èº¾ÙÐÐËÑË÷4£©ES¼¯Èº´ÓË÷Òý¿â¼ìË÷Êý¾ÝElasticaSearch×°ÖÃ×°ÖÃ×°ÖÃÉèÖãº1¡¢Ð°汾ҪÇóÖÁÉÙjdk1.8ÒÔÉÏ2¡¢Ö§³Ötar¡¢zip¡¢rpmµÈ¶àÖÖ×°Ö÷½·¨ÔÚwindowsÏ¿ª·¢½¨ÒéʹÓÃZIP×°Ö÷½·¨3¡¢Ö§³Ödocker·½·¨×°ÖÃÏêϸ°Ý¼û£ºhttps://www.elastic.co/guide/en/elasticsearch/reference/current/install-elasticsearch.htmlÏÂÔØES: Elasticsearch 6.2.1https://www.elastic.co/downloads/past-releases½âѹ elasticsearch-6.2.1.zipbin£º¾ç±¾Ä¿Â¼°üÀ¨£ºÆô¶¯¡¢×èÖ¹µÈ¿ÉÖ´Ðо籾config£ºÉèÖÃÎļþĿ¼data£ºË÷ÒýĿ¼´æ·ÅË÷ÒýÎļþµÄµØ·½logs£ºÈÕ־Ŀ¼modules£ºÄ£¿éĿ¼°üÀ¨ÁËesµÄ¹¦Ð§Ä£¿éplugins :²å¼þĿ¼esÖ§³Ö²å¼þ»úÖÆÉèÖÃÎļþÈý¸öÉèÖÃÎļþESµÄÉèÖÃÎļþµÄµØÖ·Æ¾Ö¤×°ÖÃÐÎʽµÄ²î±ð¶ø²î±ð£ºÊ¹ÓÃzip¡¢tar×°ÖÃÉèÖÃÎļþµÄµØÖ·ÔÚ×°ÖÃĿ¼µÄconfigÏÂʹÓÃRPM×°ÖÃÉèÖÃÎļþÔÚ/etc/elasticsearchÏÂʹÓÃMSI×°ÖÃÉèÖÃÎļþµÄµØÖ·ÔÚ×°ÖÃĿ¼µÄconfigϲ¢ÇÒ»á×Ô¶¯½«configĿ¼µØÖ·Ð´ÈëÇéÐαäÁ¿ES_PATH_CONF±¾½Ì³ÌʹÓõÄzip°ü×°ÖÃÉèÖÃÎļþÔÚES×°ÖÃĿ¼µÄconfigÏÂÉèÖÃÎļþÈçÏ£ºelasticsearch.yml £º ÓÃÓÚÉèÖÃElasticsearchÔËÐвÎÊý jvm.options £º ÓÃÓÚÉèÖÃElasticsearch JVMÉèÖà log4j2.properties£º ÓÃÓÚÉèÖÃElasticsearchÈÕÖ¾elasticsearch.ymlÉèÖÃÃûÌÃÊÇYAML¿ÉÒÔ½ÓÄÉÈçÏÂÁ½ÖÖ·½·¨£º·½·¨1£ºÌõÀí·½·¨path: data: /var/lib/elasticsearch logs: /var/log/elasticsearch·½·¨2£ºÊôÐÔ·½·¨path.data: /var/lib/elasticsearch path.logs: /var/log/elasticsearch±¾ÏîÄ¿½ÓÄÉ·½·¨2Àý×ÓÈçÏ£ºcluster.name: xuechengnode.name: xc_node_1network.host: 0.0.0.0http.port: 9200transport.tcp.port: 9300node.master: truenode.data: true#discovery.zen.ping.unicast.hosts: ["0.0.0.0:9300", "0.0.0.0:9301", "0.0.0.0:9302"]discovery.zen.minimum_master_nodes: 1bootstrap.memory_lock: falsenode.max_local_storage_nodes: 1path.data: D:\ElasticSearch\elasticsearch-6.2.1\datapath.logs: D:\ElasticSearch\elasticsearch-6.2.1\logshttp.cors.enabled: truehttp.cors.allow-origin: /.*/×¢ÖØpath.dataºÍpath.logs·¾¶ÉèÖÃ׼ȷ³£ÓõÄÉèÖÃÏîÈçÏ£ºcluster.name:ÉèÖÃelasticsearchµÄ¼¯ÈºÃû³ÆĬÈÏÊÇelasticsearch½¨ÒéÐ޸ijÉÒ»¸öÓÐÒâÒåµÄÃû³Ænode.name:½ÚµãÃûͨ³£Ò»Ì¨ÎïÀí·þÎñÆ÷¾ÍÊÇÒ»¸ö½Úµães»áĬÈÏËæ»úÖ¸¶¨Ò»¸öÃû×Ö½¨ÒéÖ¸¶¨Ò»¸öÓÐÒâÒåµÄÃû³ÆÀû±ã¹ÜÀíÒ»¸ö»ò¶à¸ö½Úµã×é³ÉÒ»¸öcluster¼¯Èº¼¯ÈºÊÇÒ»¸öÂß¼­µÄ¿´·¨½ÚµãÊÇÎïÀí¿´·¨ºó±ßÕ½ڻáÏêϸÏÈÈÝpath.conf: ÉèÖÃÉèÖÃÎļþµÄ´æ´¢Â·¾¶tar»òzip°ü×°ÖÃĬÈÏÔÚes¸ùĿ¼ÏµÄconfigÎļþ¼Ðrpm×°ÖÃĬÈÏÔÚ/etc/ elasticsearch path.data: ÉèÖÃË÷ÒýÊý¾ÝµÄ´æ´¢Â·¾¶ĬÈÏÊÇes¸ùĿ¼ÏµÄdataÎļþ¼Ð¿ÉÒÔÉèÖöà¸ö´æ´¢Â·¾¶ÓöººÅÀë¸ô path.logs: ÉèÖÃÈÕÖ¾ÎļþµÄ´æ´¢Â·¾¶ĬÈÏÊÇes¸ùĿ¼ÏµÄlogsÎļþ¼Ð path.plugins: ÉèÖòå¼þµÄ´æ·Å·¾¶ĬÈÏÊÇes¸ùĿ¼ÏµÄpluginsÎļþ¼Ðbootstrap.memory_lock: true ÉèÖÃΪtrue¿ÉÒÔËø×¡ESʹÓõÄÄÚ´æ×èÖ¹ÄÚ´æÓëswap·ÖÇø½»Á÷Êý¾Ý network.host: ÉèÖðó¶¨Ö÷»úµÄipµØÖ·ÉèÖÃΪ0.0.0.0ÌåÏÖ°ó¶¨ÈκÎipÔÊÐíÍâÍø»á¼ûÉú²úÇéÐν¨ÒéÉèÖÃΪÏêϸµÄip http.port: 9200 ÉèÖöÔÍâ·þÎñµÄhttp¶Ë¿ÚĬÒÔΪ9200transport.tcp.port: 9300 ¼¯Èº½áµãÖ®¼äͨѶ¶Ë¿Únode.master: Ö¸¶¨¸Ã½ÚµãÊÇ·ñÓÐ×ʸñ±»Ñ¡¾Ù³ÉΪmaster½áµãĬÈÏÊÇtrueÈôÊÇÔ­À´µÄmasterå´»ú»áÖØÐÂÑ¡¾ÙеÄmaster node.data: Ö¸¶¨¸Ã½ÚµãÊÇ·ñ´æ´¢Ë÷ÒýÊý¾ÝĬÒÔΪtruediscovery.zen.ping.unicast.hosts: ["host1:port", "host2:port", "..."] ÉèÖü¯ÈºÖÐmaster½ÚµãµÄ³õʼÁбídiscovery.zen.ping.timeout: 3s ÉèÖÃES×Ô¶¯·¢Ã÷½ÚµãÅþÁ¬³¬Ê±µÄʱ¼äĬÒÔΪ3ÃëÈôÊÇÍøÂçÑӳٸ߿ÉÉèÖôóЩ discovery.zen.minimum_master_nodes:Ö÷½áµãÊýÄ¿µÄ×îÉÙÖµ ,´ËÖµµÄ¹«Ê½Îª£º(master_eligible_nodes / 2) + 1 ºÃ±È£ºÓÐ3¸öÇкÏÒªÇóµÄÖ÷½áµãÄÇôÕâÀïÒªÉèÖÃΪ2node.max_local_storage_nodes:µ¥»úÔÊÐíµÄ×î´ó´æ´¢½áµãÊýͨ³£µ¥»úÆô¶¯Ò»¸ö½áµã½¨ÒéÉèÖÃΪ1¿ª·¢ÇéÐÎÈôÊǵ¥»úÆô¶¯¶à¸ö½Úµã¿ÉÉèÖôóÓÚ1.jvm.optionsÉèÖÃ×îС¼°×î´óµÄJVM¶ÑÄÚ´æ´óС£ºÔÚjvm.optionsÖÐÉèÖà -XmsºÍ-Xmx£º1£© Á½¸öÖµÉèÖÃΪÏàµÈ2£© ½«Xmx ÉèÖÃΪ²»Áè¼ÝÎïÀíÄÚ´æµÄÒ»°ëlog4j2.propertiesÈÕÖ¾ÎļþÉèÖÃESʹÓÃlog4j×¢ÖØÈÕÖ¾¼¶±ðµÄÉèÖÃϵͳÉèÖÃÔÚlinuxÉÏÆ¾Ö¤ÏµÍ³×ÊÔ´ÇéÐοɽ«Ã¿¸öÀú³Ì×î¶àÔÊÐí·­¿ªµÄÎļþÊýÉèÖôóЩsu limit -n ÅÌÎÊÄ¿½ñÎļþÊýʹÓÃÏÂÁîÉèÖÃlimit:ÏÈÇл»µ½rootÉèÖÃÍê³ÉÔÙÇлØelasticsearchÓû§sudo su ulimit -n 65536 su elasticsearch Ò²¿Éͨ¹ýϱߵķ½·¨ÐÞ¸ÄÎļþ¾ÙÐг¤ÆÚÉèÖÃ/etc/security/limits.conf½«Ï±ߵÄÐмÓÈë´ËÎļþ£ºelasticsearch - nofile 65536Æô¶¯ES½øÈëbinĿ¼ÔÚcmdÏÂÔËÐУºelasticsearch.batä¯ÀÀÆ÷ÊäÈ룺http://localhost:9200ÏÔʾЧ¹ûÈçÏ£¨ÉèÖòî±ðÄÚÈÝÔò²î±ð£©ËµÃ÷ESÆô¶¯Àֳɣº{ "name" : "xc_node_1", "cluster_name" : "xuecheng", "cluster_uuid" : "J18wPybJREyx1kjOoH8T-g", "version" : { "number" : "6.2.1", "build_hash" : "7299dc3", "build_date" : "2018-02-07T19:34:26.990113Z", "build_snapshot" : false, "lucene_version" : "7.2.1", "minimum_wire_compatibility_version" : "5.6.0", "minimum_index_compatibility_version" : "5.0.0" }, "tagline" : "You Know, for Search"}head²å¼þ×°ÖÃhead²å¼þÊÇESµÄÒ»¸ö¿ÉÊÓ»¯¹ÜÀí²å¼þÓÃÀ´¼àÊÓESµÄ״̬²¢Í¨¹ýhead¿Í»§¶ËºÍES·þÎñ¾ÙÐн»»¥ºÃ±È½¨ÉèÓ³Éä¡¢½¨ÉèË÷ÒýµÈheadµÄÏîÄ¿µØÖ·ÔÚhttps://github.com/mobz/elasticsearch-head ´ÓES6.0×îÏÈhead²å¼þÖ§³ÖʹµÃnode.jsÔËÐÐ1¡¢×°ÖÃnode.js2¡¢ÏÂÔØhead²¢ÔËÐÐgit clone git://github.com/mobz/elasticsearch-head.git cd elasticsearch-head npm install npm run start open HTTP£º//µ±ÌïÖ÷»ú£º9100 /3¡¢ÔËÐз­¿ªä¯ÀÀÆ÷µ÷ÊÔ¹¤¾ß·¢Ã÷±¨´í£ºOrigin null is not allowed by Access-Control-Allow-Origin.Ôµ¹ÊÔ­ÓÉÊÇ£ºhead²å¼þ×÷Ϊ¿Í»§¶ËÒªÅþÁ¬ES·þÎñ£¨localhost:9200£©´Ëʱ±£´æ¿çÓòÎÊÌâelasticsearchĬÈϲ»ÔÊÐí¿çÓò»á¼û½â¾ö¼Æ»®£ºÉèÖÃelasticsearchÔÊÐí¿çÓò»á¼ûÔÚconfig/elasticsearch.yml ºóÃæÔöÌíÒÔϲÎÊý£º#¿ªÆôcors¿çÓò»á¼ûÖ§³ÖĬÒÔΪfalse http.cors.enabled: true #¿çÓò»á¼ûÔÊÐíµÄÓòÃûµØÖ·(ÔÊÐíËùÓÐÓòÃû)ÒÔÉÏʹÓÃÕýÔò http.cors.allow-origin: /.*/×¢ÖØ£º½«config/elasticsearch.ymlÁí´æÎªutf-8±àÂëÃûÌÃÀÖ³ÉÅþÁ¬ESES¿ìËÙÈëÃÅES×÷Ϊһ¸öË÷Òý¼°ËÑË÷·þÎñ¶ÔÍâÌṩ¸»ºñµÄREST½Ó¿Ú¿ìËÙÈëÃŲ¿·ÖµÄʵÀýʹÓÃhead²å¼þÀ´²âÊÔÄ¿µÄÊǶÔESµÄʹÓÃÒªÁì¼°Á÷³ÌÓиöÆðÔ´µÄÊìϤ½¨ÉèË÷Òý¿âESµÄË÷Òý¿âÊÇÒ»¸öÂß¼­¿´·¨Ëü°üÀ¨ÁË·Ö´ÊÁÐ±í¼°ÎĵµÁбíͳһ¸öË÷Òý¿âÖд洢ÁËÏàͬÀàÐ͵ÄÎĵµËü¾ÍÏ൱ÓÚMySQLÖеıí»òÏ൱ÓÚMongodbÖеÄÜöÝ͹ØÓÚË÷ÒýÕâ¸ö´Ê£ºË÷Òý£¨Ãû´Ê£©£ºESÊÇ»ùÓÚLucene¹¹½¨µÄÒ»¸öËÑË÷·þÎñËüÒª´ÓË÷Òý¿âËÑË÷ÇкÏÌõ¼þË÷ÒýÊý¾ÝË÷Òý£¨¶¯´Ê£©£ºË÷Òý¿â¸Õ½¨ÉèÆðÀ´ÊǿյĽ«Êý¾ÝÌí¼Óµ½Ë÷Òý¿âµÄÀú³Ì³ÆÎªË÷ÒýϱßÏÈÈÝÁ½ÖÖ½¨ÉèË÷Òý¿âµÄÒªÁìËüÃǵÄÊÂÇéÔ­ÀíÊÇÏàͬµÄ¶¼Êǿͻ§¶ËÏòES·þÎñ·¢ËÍÏÂÁî1£©Ê¹ÓÃpostman»òcurlÕâÑùµÄ¹¤¾ß½¨É裺put http://localhost:9200/Ë÷Òý¿âÃû³Æ{ "settings":{ "index":{ "number_of_shards":1, "number_of_replicas":0 } }}number_of_shards£ºÉèÖÃ·ÖÆ¬µÄÊýÄ¿ÔÚ¼¯ÈºÖÐͨ³£ÉèÖöà¸ö·ÖƬÌåÏÖÒ»¸öË÷Òý¿â½«²ð·Ö³É¶àƬ»®·Ö´æ´¢²î±ðµÄ½áµãÌá¸ßÁËESµÄ´¦Öóͷ£ÄÜÁ¦ºÍ¸ß¿ÉÓÃÐÔÈëÃųÌÐòʹÓõ¥»úÇéÐÎÕâÀïÉèÖÃΪ1number_of_replicas£ºÉèÖø±±¾µÄÊýÄ¿ÉèÖø±±¾ÊÇΪÁËÌá¸ßESµÄ¸ß¿É¿¿ÐÔµ¥»úÇéÐÎÉèÖÃΪ0.ÈçÏÂÊǽ¨ÉèµÄÀý×Ó½¨Éèxc_courseË÷Òý¿â¹²1¸ö·ÖƬ0¸ö¸±±¾£º2£©Ê¹ÓÃhead²å¼þ½¨ÉèЧ¹ûÈçÏ£º½¨ÉèÓ³Éä¿´·¨ËµÃ÷ÔÚË÷ÒýÖÐÿ¸öÎĵµ¶¼°üÀ¨ÁËÒ»¸ö»ò¶à¸öfield½¨ÉèÓ³Éä¾ÍÊÇÏòË÷Òý¿âÖн¨ÉèfieldµÄÀú³ÌϱßÊÇdocumentºÍfieldÓë¹ØÏµÊý¾Ý¿âµÄ¿´·¨µÄÀà±È£ºÎĵµ£¨Document£©----------------Row¼Í¼×ֶΣ¨Field£©-------------------Columns ÁÐ×¢ÖØ£º6.0֮ǰµÄ°æ±¾ÓÐtype£¨ÀàÐÍ£©¿´·¨typeÏ൱ÓÚ¹ØÏµÊý¾Ý¿âµÄ±íES¹Ù·½½«ÔÚES9.0°æ±¾Öг¹µ×ɾ³ýtypeÉϱ߽²µÄ½¨ÉèË÷Òý¿âÏ൱ÓÚ¹ØÏµÊý¾Ý¿âÖеÄÊý¾Ý¿âÕվɱí1¡¢ÈôÊÇÏ൱ÓÚÊý¾Ý¿â¾ÍÌåÏÖÒ»¸öË÷Òý¿â¿ÉÒÔ½¨ÉèÐí¶à²î±ðÀàÐ͵ÄÎĵµÕâÔÚESÖÐÒ²ÊÇÔÊÐíµÄ2¡¢ÈôÊÇÏ൱ÓÚ±í¾ÍÌåÏÖÒ»¸öË÷Òý¿âÖ»ÄÜ´æ´¢ÏàͬÀàÐ͵ÄÎĵµES¹Ù·½½¨Òé ÔÚÒ»¸öË÷Òý¿âÖÐÖ»´æ´¢ÏàͬÀàÐ͵ÄÎĵµ½¨ÉèÓ³ÉäÎÒÃÇÒª°Ñ¿Î³ÌÐÅÏ¢´æ´¢µ½ESÖÐÕâÀïÎÒÃǽ¨Éè¿Î³ÌÐÅÏ¢µÄÓ³ÉäÏÈÀ´Ò»¸ö¼òÆÓµÄÓ³ÉäÈçÏ£º·¢ËÍ£ºpost http://localhost:9200/Ë÷Òý¿âÃû³Æ/ÀàÐÍÃû³Æ/_mapping½¨ÉèÀàÐÍΪxc_courseµÄÓ³Éä¹²°üÀ¨Èý¸ö×ֶΣºname¡¢description¡¢studymondelÓÉÓÚES6.0°æ±¾»¹Ã»Óн«type³¹µ×ɾ³ýÒÔÊÇÔÝʱ°ÑtypeÆðÒ»¸öûÓÐÌØÊâÒâÒåµÄÃû×Öpost ÇëÇó£ºhttp://localhost:9200/xc_course/doc/_mappingÌåÏÖ£ºÔÚxc_courseË÷Òý¿âϵÄdocÀàÐÍϽ¨ÉèÓ³ÉädocÊÇÀàÐÍÃû¿ÉÒÔ×Ô½ç˵ÔÚES6.0ÖÐÒªÈõ»¯ÀàÐ͵Ŀ´·¨¸øËüÆðÒ»¸öûÓÐÏêϸӪҵÒâÒåµÄÃû³Æ { "properties": { "name": { "type": "text" }, "description": { "type": "text" }, "studymodel": { "type": "keyword" } }}Ó³É佨ÉèÀÖ³ÉÉó²éhead½çÃæ£º½¨ÉèÎĵµESÖеÄÎĵµÏ൱ÓÚMySQLÊý¾Ý¿â±íÖеļͼ·¢ËÍ£ºput »òPost http://localhost:9200/xc_course/doc/idÖµ£¨ÈôÊDz»Ö¸¶¨idÖµES»á×Ô¶¯ÌìÉúID£©http://localhost:9200/xc_course/doc/4028e58161bcf7f40161bcf8b77c0000{ "name":"Bootstrap¿ª·¢¿ò¼Ü", "description":"BootstrapÊÇÓÉTwitterÍÆ³öµÄÒ»¸öÇ°Ì¨Ò³Ãæ¿ª·¢¿ò¼ÜÔÚÐÐÒµÖ®ÖÐʹÓýÏΪÆÕ±é´Ë¿ª·¢¿ò¼Ü°üÀ¨ÁË´ó×ÚµÄCSS¡¢JS³ÌÐò´úÂë¿ÉÒÔ×ÊÖú¿ª·¢Õߣ¨ÓÈÆäÊDz»ÉÆÓÚÒ³Ãæ¿ª·¢µÄ³ÌÐòÖ°Ô±£©ÇáËɵÄʵÏÖÒ»¸ö²»ÊÜä¯ÀÀÆ÷ÏÞÖÆµÄϸÄå½çÃæÐ§¹û", "studymodel":"201001"}ʹÓÃpostman²âÊÔ£ºÍ¨¹ýheadÅÌÎÊÊý¾Ý£ºËÑË÷Îĵµ1¡¢Æ¾Ö¤¿Î³ÌidÅÌÎÊÎĵµ·¢ËÍ£ºget http://localhost:9200/xc_course/doc/4028e58161bcf7f40161bcf8b77c0000ʹÓÃpostman²âÊÔ£º2¡¢ÅÌÎÊËùÓмͼ·¢ËÍ get http://localhost:9200/xc_course/doc/_search3¡¢ÅÌÎÊÃû³ÆÖаüÀ¨spring Òªº¦×ֵĵļͼ·¢ËÍ£ºget http://localhost:9200/xc_course/doc/_search?q=name:bootstrap4¡¢ÅÌÎÊѧϰģʽΪ201001µÄ¼Í¼·¢ËÍ get http://localhost:9200/xc_course/doc/_search?q=studymodel:201001ÅÌÎÊЧ¹ûÆÊÎöÆÊÎöÉϱßÅÌÎÊЧ¹û£º{ "took": 1, "timed_out": false, "_shards": { "total": 1, "successful": 1, "skipped": 0, "failed": 0 }, "hits": { "total": 1, "max_score": 0.2876821, "hits": [ { "_index": "xc_course", "_type": "doc", "_id": "4028e58161bcf7f40161bcf8b77c0000", "_score": 0.2876821, "_source": { "name": "Bootstrap¿ª·¢¿ò¼Ü", "description": "BootstrapÊÇÓÉTwitterÍÆ³öµÄÒ»¸öÇ°Ì¨Ò³Ãæ¿ª·¢¿ò¼ÜÔÚÐÐÒµÖ®ÖÐʹÓýÏΪÆÕ±é´Ë¿ª·¢¿ò¼Ü°üÀ¨ÁË´ó×ÚµÄCSS¡¢JS³ÌÐò´úÂë¿ÉÒÔ×ÊÖú¿ª·¢Õߣ¨ÓÈÆäÊDz»ÉÆÓÚÒ³Ãæ¿ª·¢µÄ³ÌÐòÖ°Ô±£©ÇáËɵÄʵÏÖÒ»¸ö²»ÊÜä¯ÀÀÆ÷ÏÞÖÆµÄϸÄå½çÃæÐ§¹û", "studymodel": "201001" } } ] }}took£º±¾´Î²Ù×÷ÆÆ·ÑµÄʱ¼äµ¥Î»ÎªºÁÃëtimed_out£ºÇëÇóÊÇ·ñ³¬Ê±_shards£ºËµÃ÷±¾´Î²Ù×÷¹²ËÑË÷ÁËÄÄЩ·ÖƬhits£ºËÑË÷ÖÀÖеļͼhits.total £º ÇкÏÌõ¼þµÄÎĵµ×ÜÊý hits.hits £ºÆ¥Åä¶È½Ï¸ßµÄǰN¸öÎĵµhits.max_score£ºÎĵµÆ¥ÅäµÃ·ÖÕâÀïΪ×î¸ß·Ö_score£ºÃ¿¸öÎĵµ¶¼ÓÐÒ»¸öÆ¥Åä¶ÈµÃ·Öƾ֤½µÐòÅÅÁÐ_source£ºÏÔʾÁËÎĵµµÄԭʼÄÚÈÝIK·Ö´ÊÆ÷²âÊÔ·Ö´ÊÆ÷ÔÚÌí¼ÓÎĵµÊ±»á¾ÙÐзִÊË÷ÒýÖдæ·ÅµÄ¾ÍÊÇÒ»¸öÒ»¸öµÄ´Ê£¨term£©µ±ÄãÈ¥ËÑË÷ʱ¾ÍÊÇÄÃÒªº¦×ÖȥƥÅä´Ê×îÖÕÕÒµ½´Ê¹ØÁªµÄÎĵµ²âÊÔÄ¿½ñË÷Òý¿âʹÓÃµÄ·Ö´ÊÆ÷£ºpost ·¢ËÍ£ºlocalhost:9200/_analyze{"text":"²âÊÔ·Ö´ÊÆ÷ºó±ßÊDzâÊÔÄÚÈÝ£ºspring cloudʵս"}Ч¹ûÈçÏ£º»á·¢Ã÷·Ö´ÊµÄЧ¹û½« ²âÊÔ Õâ¸ö´Ê²ð·Ö³ÉÁ½¸öµ¥×Ö²âºÍÊÔÕâÊÇÓÉÓÚÄ¿½ñË÷Òý¿âʹÓÃµÄ·Ö´ÊÆ÷¶ÔÖÐÎľÍÊǵ¥×Ö·Ö´Ê×°ÖÃIK·Ö´ÊÆ÷ʹÓÃIK·Ö´ÊÆ÷¿ÉÒÔʵÏÖ¶ÔÖÐÎķִʵÄЧ¹ûÏÂÔØIK·Ö´ÊÆ÷£º£¨GithubµØÖ·£ºhttps://github.com/medcl/elasticsearch-analysis-ik£©ÏÂÔØzip£º½âѹ²¢½«½âѹµÄÎļþ¿½±´µ½ES×°ÖÃĿ¼µÄpluginsϵÄikĿ¼Ï²âÊÔ·Ö´ÊЧ¹û£º·¢ËÍ£ºpost localhost:9200/_analyze{"text":"²âÊÔ·Ö´ÊÆ÷ºó±ßÊDzâÊÔÄÚÈÝ£ºspring cloudʵս","analyzer":"ik_max_word" }Á½ÖÖ·Ö´Êģʽik·Ö´ÊÆ÷ÓÐÁ½ÖÖ·Ö´Êģʽ£ºik_max_wordºÍik_smartģʽ1¡¢ik_max_word»á½«Îı¾×ö×îϸÁ£¶ÈµÄ²ð·ÖºÃ±È»á½«ÖлªÈËÃñ¹²ºÍ¹úÈËÃñ´óÀñÌòð·ÖΪÖлªÈËÃñ¹²ºÍ¹ú¡¢ÖлªÈËÃñ¡¢Öлª¡¢»ªÈË¡¢ÈËÃñ¹²ºÍ¹ú¡¢ÈËÃñ¡¢¹²ºÍ¹ú¡¢´óÀñÌᢴó»á¡¢ÀñÌõȴÊÓï2¡¢ik_smart»á×ö×î´ÖÁ£¶ÈµÄ²ð·ÖºÃ±È»á½«ÖлªÈËÃñ¹²ºÍ¹úÈËÃñ´óÀñÌòð·ÖΪÖлªÈËÃñ¹²ºÍ¹ú¡¢ÈËÃñ´óÀñÌòâÊÔÁ½ÖÖ·Ö´Êģʽ£º·¢ËÍ£ºpost localhost:9200/_analyze{"text":"ÖлªÈËÃñ¹²ºÍ¹úÈËÃñ´óÀñÌÃ","analyzer":"ik_smart" }×Ô½ç˵´Ê¿âÈôÊÇÒªÈÃ·Ö´ÊÆ÷Ö§³ÖһЩרÓдÊÓï¿ÉÒÔ×Ô½ç˵´Ê¿âiK·Ö´ÊÆ÷×Ô´øÒ»¸ömain.dicµÄÎļþ´ËÎļþΪ´Ê¿âÎļþÔÚÉϱߵÄĿ¼ÖÐн¨Ò»¸ömy.dicÎļþ£¨×¢ÖØÎļþÃûÌÃΪutf-8£¨²»ÒªÑ¡Ôñutf-8 BOM£©£©¿ÉÒÔÔÚÆäÖÐ×Ô½ç˵´Ê»ã£ººÃ±È½ç˵£ºÉèÖÃÎļþÖÐÉèÖÃmy.dicÖØÆôES²âÊÔ·Ö´ÊЧ¹û£º·¢ËÍ£ºpost localhost:9200/_analyze{"text":"²âÊÔ·Ö´ÊÆ÷ºó±ßÊDzâÊÔÄÚÈÝ£ºspring cloudʵս","analyzer":"ik_max_word" }Ó³ÉäÉϱßÕ½Ú×°ÖÃÁËik·Ö´ÊÆ÷ÈôÊÇÔÚË÷ÒýºÍËÑË÷ʱȥʹÓÃik·Ö´ÊÆ÷ÄØÔõÑùÖ¸¶¨ÆäËüÀàÐ͵ÄfieldºÃ±ÈÈÕÆÚÀàÐÍ¡¢ÊýÖµÀàÐ͵ȱ¾Õ½ÚѧϰÖÖÖÖÓ³ÉäÀàÐͼ°Ó³Éäά»¤ÒªÁìÓ³Éäά»¤ÒªÁì1¡¢ÅÌÎÊËùÓÐË÷ÒýµÄÓ³É䣺GET£º http://localhost:9200/_mapping2¡¢½¨ÉèÓ³Éäpost ÇëÇó£ºhttp://localhost:9200/xc_course/doc/_mappingÒ»¸öÀý×Ó£º { "properties": { "name": { "type": "text" }, "description": { "type": "text" }, "studymodel": { "type": "keyword" } }}3¡¢¸üÐÂÓ³ÉäÓ³É佨ÉèÀֳɿÉÒÔÌí¼ÓÐÂ×Ö¶ÎÒÑÓÐ×ֶβ»ÔÊÐí¸üÐÂ4¡¢É¾³ýÓ³Éäͨ¹ýɾ³ýË÷ÒýÀ´É¾³ýÓ³Éä³£ÓÃÓ³ÉäÀàÐÍtextÎı¾×Ö¶ÎÏÂͼÊÇES6.2½¹µãµÄ×Ö¶ÎÀàÐÍÈçÏ£º×Ö·û´®°üÀ¨textºÍkeywordÁ½ÖÖÀàÐÍ£º1¡¢text1£©analyzerͨ¹ýanalyzerÊôÐÔÖ¸¶¨·Ö´ÊÆ÷ϱßÖ¸¶¨nameµÄ×Ö¶ÎÀàÐÍΪtextʹÓÃik·Ö´ÊÆ÷µÄik_max_word·Ö´Êģʽ "name": { "type": "text", "analyzer":"ik_max_word" }ÉϱßÖ¸¶¨ÁËanalyzerÊÇÖ¸ÔÚË÷ÒýºÍËÑË÷¶¼Ê¹ÓÃik_max_wordÈôÊǵ¥¶ÀÏë½ç˵ËÑË÷ʱʹÓÃµÄ·Ö´ÊÆ÷Ôò¿ÉÒÔͨ¹ýsearch_analyzerÊôÐÔ¹ØÓÚik·Ö´ÊÆ÷½¨ÒéÊÇË÷ÒýʱʹÓÃik_max_word½«ËÑË÷ÄÚÈݾÙÐÐϸÁ£¶È·Ö´ÊËÑË÷ʱʹÓÃik_smartÌá¸ßËÑË÷׼ȷÐÔ"name": { "type": "text", "analyzer":"ik_max_word", "search_analyzer":"ik_smart" }2£©indexͨ¹ýindexÊôÐÔÖ¸¶¨ÊÇ·ñË÷ÒýĬÒÔΪindex=true¼´Òª¾ÙÐÐË÷ÒýÖ»ÓоÙÐÐË÷Òý²Å¿ÉÒÔ´ÓË÷Òý¿âËÑË÷µ½¿ÉÊÇÒ²ÓÐһЩÄÚÈݲ»ÐèÒªË÷ÒýºÃ±È£ºÉÌÆ·Í¼Æ¬µØÖ·Ö»±»ÓÃÀ´Õ¹Ê¾Í¼Æ¬²»¾ÙÐÐËÑË÷ͼƬ´Ëʱ¿ÉÒÔ½«indexÉèÖÃΪfalseɾ³ýË÷ÒýÖØÐ½¨ÉèÓ³É佫picµÄindexÉèÖÃΪfalseʵÑ鯾֤picÈ¥ËÑË÷Ч¹ûËÑË÷²»µ½Êý¾Ý "pic": { "type": "text", "index":false }3£©storeÊÇ·ñÔÚsourceÖ®Íâ´æ´¢ÿ¸öÎĵµË÷Òýºó»áÔÚ ESÖÐÉúÑÄÒ»·ÝԭʼÎĵµ´æ·ÅÔÚ"_source"ÖÐÒ»Ñùƽ³£ÇéÐÎϲ»ÐèÒªÉèÖÃstoreΪtrueÓÉÓÚÔÚ_sourceÖÐÒѾ­ÓÐÒ»·ÝԭʼÎĵµÁ˲âÊÔɾ³ýxc_course/docϵÄÓ³É佨ÉèÐÂÓ³É䣺Post http://localhost:9200/xc_course/doc/_mapping { "properties": { "name": { "type": "text", "analyzer":"ik_max_word", "search_analyzer":"ik_smart" }, "description": { "type": "text", "analyzer":"ik_max_word", "search_analyzer":"ik_smart" }, "pic":{ "type":"text", "index":false }, "studymodel":{ "type":"text" } }}²åÈëÎĵµ£ºhttp://localhost:9200/xc_course/doc/4028e58161bcf7f40161bcf8b77c0000{ "name":"Bootstrap¿ª·¢¿ò¼Ü", "description":"BootstrapÊÇÓÉTwitterÍÆ³öµÄÒ»¸öÇ°Ì¨Ò³Ãæ¿ª·¢¿ò¼ÜÔÚÐÐÒµÖ®ÖÐʹÓýÏΪÆÕ±é´Ë¿ª·¢¿ò¼Ü°üÀ¨ÁË´ó×ÚµÄCSS¡¢JS³ÌÐò´úÂë¿ÉÒÔ×ÊÖú¿ª·¢Õߣ¨ÓÈÆäÊDz»ÉÆÓÚÒ³Ãæ¿ª·¢µÄ³ÌÐòÖ°Ô±£©ÇáËɵÄʵÏÖÒ»¸ö²»ÊÜä¯ÀÀÆ÷ÏÞÖÆµÄϸÄå½çÃæÐ§¹û", "pic":"group1/M00/00/01/wKhlQFqO4MmAOP53AAAcwDwm6SU490.jpg", "studymodel":"201002"}ÅÌÎʲâÊÔ£ºGet http://localhost:9200/xc_course/_search?q=name:¿ª·¢Get http://localhost:9200/xc_course/_search?q=description:¿ª·¢Get http://localhost:9200/xc_course/_search?q=pic:group1/M00/00/01/wKhlQFqO4MmAOP53AAAcwDwm6SU490.jpgGet http://localhost:9200/xc_course/_search?q=studymodel:201002ͨ¹ý²âÊÔ·¢Ã÷£ºnameºÍdescription¶¼Ö§³ÖÈ«ÎļìË÷pic²»¿É×÷ΪÅÌÎÊÌõ¼þkeywordÒªº¦×Ö×Ö¶ÎÉϱßÏÈÈݵÄtextÎı¾×Ö¶ÎÔÚÓ³ÉäʱҪÉèÖÃ·Ö´ÊÆ÷keyword×Ö¶ÎΪҪº¦×Ö×Ö¶Îͨ³£ËÑË÷keywordÊÇÆ¾Ö¤ÕûÌåËÑË÷ÒÔÊǽ¨Éèkeyword×ֶεÄË÷ÒýʱÊDz»¾ÙÐзִʵĺñȣºÓÊÕþ±àÂë¡¢ÊÖ»úºÅÂë¡¢Éí·ÝÖ¤µÈkeyword×Ö¶Îͨ³£ÓÃÓÚ¹ýÂÇ¡¢ÅÅÐò¡¢¾ÛºÏµÈ²âÊÔ¸ü¸ÄÓ³É䣺{ "properties": { "studymodel":{ "type":"keyword" }, "name":{ "type":"keyword" } }}²åÈëÎĵµ£º{ "name": "java±à³Ì»ù´¡", "description": "javaÓïÑÔÊÇÌìϵÚÒ»±à³ÌÓïÑÔÔÚÈí¼þ¿ª·¢ÁìÓòʹÓÃÈËÊý×î¶à", "pic":"group1/M00/00/01/wKhlQFqO4MmAOP53AAAcwDwm6SU490.jpg", "studymodel": "201001"}ƾ֤studymodelÅÌÎÊÎĵµËÑË÷£ºhttp://localhost:9200/xc_course/_search?q=name:javanameÊÇkeywordÀàÐÍÒÔÊÇÅÌÎÊ·½·¨ÊÇ׼ȷÅÌÎÊdateÈÕÆÚÀàÐÍÈÕÆÚÀàÐͲ»±ØÉèÖÃ·Ö´ÊÆ÷ͨ³£ÈÕÆÚÀàÐ͵Ä×Ö¶ÎÓÃÓÚÅÅÐò1)formatͨ¹ýformatÉèÖÃÈÕÆÚÃûÌÃÀý×Ó£ºÏ±ߵÄÉèÖÃÔÊÐídate×ֶδ洢ÄêÔÂÈÕʱ·ÖÃë¡¢ÄêÔÂÈÕ¼°ºÁÃëÈýÖÖÃûÌÃ{ "properties": { "timestamp": { "type": "date", "format": "yyyy-MM-dd HH:mm:ss||yyyy-MM-dd" } }}²åÈëÎĵµ£ºPost :http://localhost:9200/xc_course/doc/3{"name": "spring¿ª·¢»ù´¡","description": "spring ÔÚjavaÁìÓòºÜÊÇÊ¢ÐÐjava³ÌÐòÔ±¶¼ÔÚÓÃ","studymodel": "201001", "pic":"group1/M00/00/01/wKhlQFqO4MmAOP53AAAcwDwm6SU490.jpg", "timestamp":"2018-07-04 18:28:58"}ÊýÖµÀàÐÍϱßÊÇESÖ§³ÖµÄÊýÖµÀàÐÍ1¡¢Ö»¹ÜÑ¡Ôñ¹æÄ£Ð¡µÄÀàÐÍÌá¸ßËÑË÷ЧÂÊ2¡¢¹ØÓÚ¸¡µãÊýÖ»¹ÜÓñÈÀýÒò×ӺñÈÒ»¸ö¼ÛÇ®×ֶε¥Î»ÎªÔªÎÒÃǽ«±ÈÀýÒò×ÓÉèÖÃΪ100ÕâÔÚESÖлᰴ ·Ö ´æ´¢Ó³ÉäÈçÏ£º "price": { "type": "scaled_float", "scaling_factor": 100 },ÓÉÓÚ±ÈÀýÒò×ÓΪ100ÈôÊÇÎÒÃÇÊäÈëµÄ¼ÛÇ®ÊÇ23.45ÔòESÖлὫ23.45³ËÒÔ100´æ´¢ÔÚESÖÐÈôÊÇÊäÈëµÄ¼ÛÇ®ÊÇ23.456ES»á½«23.456³ËÒÔ100ÔÙȡһ¸ö¿¿½üԭʼֵµÄÊýµÃ³ö2346ʹÓñÈÀýÒò×ÓµÄÀûÒæÊÇÕûÐͱȸ¡µãÐ͸üÒ×ѹËõ½ÚÔ¼´ÅÅ̿ռäÈôÊDZÈÀýÒò×Ó²»ÊʺÏÔò´ÓϱíÑ¡Ôñ¹æÄ£Ð¡µÄÈ¥Ó㺸üÐÂÒÑÓÐÓ³Éä²¢²åÈëÎĵµ£ºhttp://localhost:9200/xc_course/doc/3{"name": "spring¿ª·¢»ù´¡","description": "spring ÔÚjavaÁìÓòºÜÊÇÊ¢ÐÐjava³ÌÐòÔ±¶¼ÔÚÓÃ","studymodel": "201001", "pic":"group1/M00/00/01/wKhlQFqO4MmAOP53AAAcwDwm6SU490.jpg", "timestamp":"2018-07-04 18:28:58", "price":38.6}×ÛºÏÀý×Ó½¨ÉèÈçÏÂÓ³Éäpost£ºhttp://localhost:9200/xc_course/doc/_mapping{ "properties": { "description": { "type": "text", "analyzer": "ik_max_word", "search_analyzer": "ik_smart" }, "name": { "type": "text", "analyzer": "ik_max_word", "search_analyzer": "ik_smart" }, "pic":{ "type":"text", "index":false }, "price": { "type": "float" }, "studymodel": { "type": "keyword" }, "timestamp": { "type": "date", "format": "yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis" } } }²åÈëÎĵµ£ºPost: http://localhost:9200/xc_course/doc/1 { "name": "Bootstrap¿ª·¢", "description": "BootstrapÊÇÓÉTwitterÍÆ³öµÄÒ»¸öÇ°Ì¨Ò³Ãæ¿ª·¢¿ò¼ÜÊÇÒ»¸öºÜÊÇÊ¢ÐеĿª·¢¿ò¼Ü´Ë¿ò¼Ü¼¯³ÉÁ˶àÖÖÒ³ÃæÐ§¹û´Ë¿ª·¢¿ò¼Ü°üÀ¨ÁË´ó×ÚµÄCSS¡¢JS³ÌÐò´úÂë¿ÉÒÔ×ÊÖú¿ª·¢Õߣ¨ÓÈÆäÊDz»ÉÆÓÚÒ³Ãæ¿ª·¢µÄ³ÌÐòÖ°Ô±£©ÇáËɵÄʵÏÖÒ»¸ö²»ÊÜä¯ÀÀÆ÷ÏÞÖÆµÄϸÄå½çÃæÐ§¹û", "studymodel": "201002", "price":38.6, "timestamp":"2018-04-25 19:11:35", "pic":"group1/M00/00/00/wKhlQFs6RCeAY0pHAAJx5ZjNDEM428.jpg" }Ë÷Òý¹ÜÀí´î½¨¹¤³ÌES¿Í»§¶ËESÌṩ¶àÖÖ²î±ðµÄ¿Í»§¶Ë£º1¡¢TransportClientESÌṩµÄ¹Å°å¿Í»§¶Ë¹Ù·½ÍýÏë8.0°æ±¾É¾³ý´Ë¿Í»§¶Ë2¡¢RestClientRestClientÊǹٷ½ÍƼöʹÓõÄËü°üÀ¨Á½ÖÖ£ºJava Low Level REST ClientºÍ Java High Level REST ClientESÔÚ6.0Ö®ºóÌṩ Java High Level REST Client Á½ÖÖ¿Í»§¶Ë¹Ù·½¸üÍÆ¼öʹÓà Java High Level REST Client²»¹ýÄ¿½ñËü»¹´¦ÓÚÍêÉÆÖÐÓÐЩ¹¦Ð§»¹Ã»Óб¾½Ì³Ì×¼±¸½ÓÄÉ Java High Level REST ClientÈôÊÇËüÓв»Ö§³ÖµÄ¹¦Ð§ÔòʹÓÃJava Low Level REST ClientÌí¼ÓÒÀÀµ£º org.elasticsearch.client elasticsearch-rest-high-level-client 6.2.1 org.elasticsearch elasticsearch 6.2.1½¨ÉèËÑË÷¹¤³Ì½¨ÉèËÑË÷¹¤³Ì£¨maven¹¤³Ì£©£ºxc-service-searchÌí¼ÓRestHighLevelClientÒÀÀµ¼°junitÒÀÀµpom.xml xc-framework-parent com.xuecheng 1.0-SNAPSHOT ../xc-framework-parent/pom.xml 4.0.0 xc-service-search com.xuecheng xc-framework-model 1.0-SNAPSHOT com.xuecheng xc-framework-common 1.0-SNAPSHOT com.xuecheng xc-service-api 1.0-SNAPSHOT org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-starter-web org.elasticsearch.client elasticsearch-rest-high-level-client 6.2.1 org.elasticsearch elasticsearch 6.2.1 org.springframework.boot spring-boot-starter-test test com.alibaba fastjson org.apache.commons commons-io org.apache.commons commons-lang3 2¡¢ÉèÖÃÎļþapplication.ymlserver: port: ${port:40100}spring: application: name: xc-search-servicexuecheng: elasticsearch: hostlist: ${eshostlist:127.0.0.1:9200} #¶à¸ö½áµãÖÐÐÄÓöººÅÍÑÀë3¡¢ÉèÖÃÀཨÉècom.xuecheng.search.config°üÔÚÆäϽ¨ÉèÉèÖÃÀàpackage com.xuecheng.search.config;import org.apache.http.HttpHost;import org.elasticsearch.client.RestClient;import org.elasticsearch.client.RestHighLevelClient;import org.springframework.beans.factory.annotation.Value;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;@Configurationpublic class ElasticsearchConfig { @Value("${xuecheng.elasticsearch.hostlist}") private String hostlist; @Bean public RestHighLevelClient restHighLevelClient(){ //ÆÊÎöhostlistÉèÖÃÐÅÏ¢ String[] split = hostlist.split(","); //½¨ÉèHttpHostÊý×éÆäÖдæ·ÅesÖ÷»úºÍ¶Ë¿ÚµÄÉèÖÃÐÅÏ¢ HttpHost[] httpHostArray = new HttpHost[split.length]; for(int i=0;i jsonMap = new HashMap<>(); jsonMap.put("name", "spring cloudʵս"); jsonMap.put("description", "±¾¿Î³ÌÖ÷Òª´ÓËĸöÕ½ھÙÐнâ˵£º 1.΢·þÎñ¼Ü¹¹ÈëÃÅ 2.spring cloud »ù´¡ÈëÃÅ 3.ʵսSpring Boot 4.×¢²áÖÐÐÄeureka"); jsonMap.put("studymodel", "201001"); SimpleDateFormat dateFormat =new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); jsonMap.put("timestamp", dateFormat.format(new Date())); jsonMap.put("price", 5.6f); //Ë÷ÒýÇëÇó¹¤¾ß IndexRequest indexRequest = new IndexRequest("xc_course","doc"); //Ö¸¶¨Ë÷ÒýÎĵµÄÚÈÝ indexRequest.source(jsonMap); //Ë÷ÒýÏìÓ¦¹¤¾ß IndexResponse indexResponse = client.index(indexRequest); //»ñÈ¡ÏìӦЧ¹û DocWriteResponse.Result result = indexResponse.getResult(); System.out.println(result); }ÅÌÎÊÎĵµAPIÃûÌÃÈçÏ£º GET /{index}/{type}/{id}Java Client//ÅÌÎÊÎĵµ@Testpublic void getDoc() throws IOException { GetRequest getRequest = new GetRequest( "xc_course", "doc", "4028e581617f945f01617f9dabc40000"); GetResponse getResponse = client.get(getRequest); boolean exists = getResponse.isExists(); Map sourceAsMap = getResponse.getSourceAsMap(); System.out.println(sourceAsMap);}¸üÐÂÎĵµApiES¸üÐÂÎĵµµÄ˳ÐòÊÇ£ºÏȼìË÷µ½Îĵµ¡¢½«Ô­À´µÄÎĵµ±ê¼ÇΪɾ³ý¡¢½¨ÉèÐÂÎĵµ¡¢É¾³ý¾ÉÎĵµ½¨ÉèÐÂÎĵµ¾Í»áÖØÐÞË÷Òýͨ¹ýÇëÇóUrlÓÐÁ½ÖÖÒªÁ죺1¡¢ÍêÈ«Ìæ»»Post£ºhttp://localhost:9200/xc_test/doc/3 { "name":"spring cloudʵս", "description":"±¾¿Î³ÌÖ÷Òª´ÓËĸöÕ½ھÙÐнâ˵£º 1.΢·þÎñ¼Ü¹¹ÈëÃÅ 2.spring cloud »ù´¡ÈëÃÅ 3.ʵսSpring Boot 4.×¢²áÖÐÐÄeureka", "studymodel":"201001" "price":5.6 }2¡¢¾Ö²¿¸üÐÂϱߵÄÀý×ÓÊÇÖ»¸üÐÂprice×Ö¶Îpost: http://localhost:9200/xc_test/doc/3/_update{ "doc":{"price":66.6}}Java ClientʹÓà Client Api¸üÐÂÎĵµµÄÒªÁìͬÉϱߵڶþÖÖ¾Ö²¿¸üÐÂÒªÁì¿ÉÒÔÖ¸¶¨ÎĵµµÄ²¿·Ö×Ö¶ÎÒ²¿ÉÒÔÖ¸¶¨ÍêÕûµÄÎĵµÄÚÈÝ //¸üÐÂÎĵµ @Test public void updateDoc() throws IOException { UpdateRequest updateRequest = new UpdateRequest("xc_course", "doc", "4028e581617f945f01617f9dabc40000"); Map map = new HashMap<>(); map.put("name", "spring cloudʵս"); updateRequest.doc(map); UpdateResponse update = client.update(updateRequest); RestStatus status = update.status(); System.out.println(status); }ɾ³ýÎĵµApiƾ֤idɾ³ýÃûÌÃÈçÏ£ºDELETE /{index}/{type}/{id}ËÑË÷Æ¥Åäɾ³ý½«ËÑË÷³öÀ´µÄ¼Í¼ɾ³ýÃûÌÃÈçÏ£ºPOST /{index}/{type}/_delete_by_queryϱßÊÇËÑË÷Ìõ¼þÀý×Ó£º{ "query":{ "term":{ "studymodel":"201001" } }}ÉϱßÀý×ÓµÄËÑË÷Æ¥Åäɾ³ý»á½«studymodelΪ201001µÄ¼Í¼ËùÓÐɾ³ýJava Client//ƾ֤idɾ³ýÎĵµ @Test public void testDelDoc() throws IOException { //ɾ³ýÎĵµid String id = "eqP_amQBKsGOdwJ4fHiC"; //ɾ³ýË÷ÒýÇëÇó¹¤¾ß DeleteRequest deleteRequest = new DeleteRequest("xc_course","doc",id); //ÏìÓ¦¹¤¾ß DeleteResponse deleteResponse = client.delete(deleteRequest); //»ñÈ¡ÏìӦЧ¹û DocWriteResponse.Result result = deleteResponse.getResult(); System.out.println(result); }ËÑË÷Æ¥Åäɾ³ý»¹Ã»ÓÐÏêϸµÄapi¿ÉÒÔ½ÓÄÉÏÈËÑË÷³öÎĵµidƾ֤Îĵµidɾ³ýËÑË÷¹ÜÀí×¼±¸ÇéÐν¨ÉèÓ³É佨Éèxc_courseË÷Òý¿â½¨ÉèÈçÏÂÓ³Éäpost£ºhttp://localhost:9200/xc_course/doc/_mapping²Î¿¼ ×ÊÁÏ--¡·ËÑË÷²âÊÔ-³õʼ»¯Êý¾Ý.txt{ "properties": { "description": { "type": "text", "analyzer": "ik_max_word", "search_analyzer": "ik_smart" }, "name": { "type": "text", "analyzer": "ik_max_word", "search_analyzer": "ik_smart" }, "pic":{ "type":"text", "index":false }, "price": { "type": "float" }, "studymodel": { "type": "keyword" }, "timestamp": { "type": "date", "format": "yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis" } } }²åÈëԭʼÊý¾ÝÏòxc_course/docÖвåÈëÒÔÏÂÊý¾Ý£º²Î¿¼ ×ÊÁÏ--¡·ËÑË÷²âÊÔ-³õʼ»¯Êý¾Ý.txthttp://localhost:9200/xc_course/doc/1{"name": "Bootstrap¿ª·¢","description": "BootstrapÊÇÓÉTwitterÍÆ³öµÄÒ»¸öÇ°Ì¨Ò³Ãæ¿ª·¢css¿ò¼ÜÊÇÒ»¸öºÜÊÇÊ¢ÐеĿª·¢¿ò¼Ü´Ë¿ò¼Ü¼¯³ÉÁ˶àÖÖÒ³ÃæÐ§¹û´Ë¿ª·¢¿ò¼Ü°üÀ¨ÁË´ó×ÚµÄCSS¡¢JS³ÌÐò´úÂë¿ÉÒÔ×ÊÖú¿ª·¢Õߣ¨ÓÈÆäÊDz»ÉÆÓÚcssÒ³Ãæ¿ª·¢µÄ³ÌÐòÖ°Ô±£©ÇáËɵÄʵÏÖÒ»¸öcss²»ÊÜä¯ÀÀÆ÷ÏÞÖÆµÄϸÄå½çÃæcssЧ¹û","studymodel": "201002","price":38.6,"timestamp":"2018-04-25 19:11:35","pic":"group1/M00/00/00/wKhlQFs6RCeAY0pHAAJx5ZjNDEM428.jpg"}http://localhost:9200/xc_course/doc/2{"name": "java±à³Ì»ù´¡","description": "javaÓïÑÔÊÇÌìϵÚÒ»±à³ÌÓïÑÔÔÚÈí¼þ¿ª·¢ÁìÓòʹÓÃÈËÊý×î¶à","studymodel": "201001","price":68.6,"timestamp":"2018-03-25 19:11:35","pic":"group1/M00/00/00/wKhlQFs6RCeAY0pHAAJx5ZjNDEM428.jpg"}http://localhost:9200/xc_course/doc/3{"name": "spring¿ª·¢»ù´¡","description": "spring ÔÚjavaÁìÓòºÜÊÇÊ¢ÐÐjava³ÌÐòÔ±¶¼ÔÚÓÃ","studymodel": "201001","price":88.6,"timestamp":"2018-02-24 19:11:35","pic":"group1/M00/00/00/wKhlQFs6RCeAY0pHAAJx5ZjNDEM428.jpg"}¼òÆÓËÑË÷¼òÆÓËÑË÷¾ÍÊÇͨ¹ýurl¾ÙÐÐÅÌÎÊÒÔget·½·¨ÇëÇóESÃûÌãºget ../_search?q=.....q£ºËÑË÷×Ö·û´®Àý×Ó£º?q=name:spring ËÑË÷nameÖаüÀ¨springµÄÎĵµDSLËÑË÷DSL(Domain Specific Language)ÊÇESÌá³öµÄ»ùÓÚjsonµÄËÑË÷·½·¨ÔÚËÑË÷ʱ´«ÈëÌØ¶¨µÄjsonÃûÌõÄÊý¾ÝÀ´Íê³É²î±ðµÄËÑË÷ÐèÇóDSL±ÈURIËÑË÷·½·¨¹¦Ð§Ç¿Ê¢ÔÚÏîÄ¿Öн¨ÒéʹÓÃDSL·½·¨À´Íê³ÉËÑË÷ÅÌÎÊËùÓÐÎĵµÅÌÎÊËùÓÐË÷Òý¿âµÄÎĵµ·¢ËÍ£ºpost http://localhost:9200/_searchÅÌÎÊÖ¸¶¨Ë÷Òý¿âÖ¸¶¨ÀàÐÍϵÄÎĵµ£¨Í¨¹ýʹÓôËÒªÁ죩·¢ËÍ£ºpost http://localhost:9200/xc_course/doc/_search{ "query": { "match_all": {} }, "_source" : ["name","studymodel"]}_source£ºsourceÔ´¹ýÂÇÉèÖÃÖ¸¶¨Ð§¹ûÖÐËù°üÀ¨µÄ×Ö¶ÎÓÐÄÄЩЧ¹û˵Ã÷£ºtook£º±¾´Î²Ù×÷ÆÆ·ÑµÄʱ¼äµ¥Î»ÎªºÁÃëtimed_out£ºÇëÇóÊÇ·ñ³¬Ê±_shards£ºËµÃ÷±¾´Î²Ù×÷¹²ËÑË÷ÁËÄÄЩ·ÖƬhits£ºËÑË÷ÖÀÖеļͼhits.total £º ÇкÏÌõ¼þµÄÎĵµ×ÜÊý hits.hits £ºÆ¥Åä¶È½Ï¸ßµÄǰN¸öÎĵµhits.max_score£ºÎĵµÆ¥ÅäµÃ·ÖÕâÀïΪ×î¸ß·Ö_score£ºÃ¿¸öÎĵµ¶¼ÓÐÒ»¸öÆ¥Åä¶ÈµÃ·Öƾ֤½µÐòÅÅÁÐ_source£ºÏÔʾÁËÎĵµµÄԭʼÄÚÈÝJavaClient£º@SpringBootTest@RunWith(SpringRunner.class)public class TestSearch { @Autowired RestHighLevelClient client; @Autowired RestClient restClient; //ËÑË÷typeϵÄËùÓмͼ @Test public void testSearchAll() throws IOException, ParseException { //ËÑË÷ÇëÇó¹¤¾ß SearchRequest searchRequest = new SearchRequest("xc_course"); //ÉèÖÃÀàÐÍ searchRequest.types("doc"); //ËÑË÷Ô´¹¹½¨¹¤¾ß SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder(); //ËÑË÷ËùÓÐ searchSourceBuilder.query(QueryBuilders.matchAllQuery()); //sourceÔ´×ֶιýÂÇ searchSourceBuilder.fetchSource(new String[]{"name","studymodel","price","timestamp"},new String[]{}); //ÉèÖÃËÑË÷Ô´ searchRequest.source(searchSourceBuilder); //Ö´ÐÐËÑË÷ SearchResponse searchResponse = client.search(searchRequest); //ËÑË÷Æ¥ÅäЧ¹û SearchHits hits = searchResponse.getHits(); //ËÑË÷×ܼͼÊý long totalHits = hits.totalHits; //Æ¥Åä¶È½Ï¸ßµÄǰN¸öÎĵµ SearchHit[] searchHits = hits.getHits(); //ÈÕÆÚÃûÌû¯¹¤¾ß SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); for(SearchHit hit:searchHits){ //Îĵµid String id = hit.getId(); //Ô´ÎĵµÄÚÈÝ Map sourceAsMap = hit.getSourceAsMap(); //»ñȡԴÎĵµname String name = (String) sourceAsMap.get("name"); String description = (String) sourceAsMap.get("description"); String studymodel = (String) sourceAsMap.get("studymodel"); Double price = (Double) sourceAsMap.get("price"); Date timestamp = dateFormat.parse((String) sourceAsMap.get("timestamp")); System.out.println(name); System.out.println(studymodel); System.out.println(description); } } ....·ÖÒ³ÅÌÎÊESÖ§³Ö·ÖÒ³ÅÌÎÊ´«ÈëÁ½¸ö²ÎÊý£ºfromºÍsizeform£ºÌåÏÖÆðʼÎĵµµÄϱê´Ó0×îÏÈsize£ºÅÌÎʵÄÎĵµÊýÄ¿·¢ËÍ£ºpost http://localhost:9200/xc_course/doc/_search{"from" : 0, "size" : 1,"query": { "match_all": {} },"_source" : ["name","studymodel"]}JavaClient...SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();//ÉèÖ÷ÖÒ³²ÎÊý//Ä¿½ñÒ³Âëint page = 2;//Ò³Âëint size = 1;//ÿҳÏÔʾ¸öÊýint from = (page - 1) * size;//Æð¼Í¼Ï±êsearchSourceBuilder.from(from);searchSourceBuilder.size(size);...Term QueryTerm QueryΪ׼ȷÅÌÎÊÔÚËÑË÷ʱ»áÕûÌ寥ÅäÒªº¦×Ö²»ÔÙ½«Òªº¦×Ö·Ö´Ê·¢ËÍ£ºpost http://localhost:9200/xc_course/doc/_search{ "query": { "term" : { "name": "spring" } }, "_source" : ["name","studymodel"] }ÉϱߵÄËÑË÷»áÅÌÎÊname°üÀ¨springÕâ¸ö´ÊµÄÎĵµJavaClient£º...//ËÑË÷ÇëÇ󹤾ßSearchRequest searchRequest = new SearchRequest("xc_course");//ÉèÖÃÀàÐÍsearchRequest.types("doc");//ËÑË÷Ô´¹¹½¨¹¤¾ßSearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();//TermQuerysearchSourceBuilder.query(QueryBuilders.termQuery("name","spring"));//sourceÔ´×ֶιýÂÇsearchSourceBuilder.fetchSource(new String[]{"name","studymodel","price","timestamp"},new String[]{});//ÉèÖÃËÑË÷Ô´searchRequest.source(searchSourceBuilder);//Ö´ÐÐËÑË÷SearchResponse searchResponse = client.search(searchRequest);...ƾ֤id׼ȷƥÅäESÌṩƾ֤¶à¸öidֵƥÅäµÄÒªÁ죺²âÊÔ£ºpost£º http://127.0.0.1:9200/xc_course/doc/_search{ "query": { "ids" : { "type" : "doc", "values" : ["3", "4", "100"] } }}JavaClient:ͨ¹ýtermsQuery¾ÙÐÐÅÌÎÊ´úÂëÈçÏ£º//ËÑË÷ÇëÇ󹤾ßSearchRequest searchRequest = new SearchRequest("xc_course");//ÉèÖÃÀàÐÍsearchRequest.types("doc");//ËÑË÷Ô´¹¹½¨¹¤¾ßSearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();//Ö÷¼üString[] ids = new String[]{"1","2"};//TermQuerysearchSourceBuilder.query(QueryBuilders.termsQuery("_id", ids));//sourceÔ´×ֶιýÂÇsearchSourceBuilder.fetchSource(new String[]{"name","studymodel","price","timestamp"},new String[]{});//ÉèÖÃËÑË÷Ô´searchRequest.source(searchSourceBuilder);//Ö´ÐÐËÑË÷SearchResponse searchResponse = client.search(searchRequest);match Query1¡¢»ù±¾Ê¹ÓÃmatch Query¼´È«ÎļìË÷ËüµÄËÑË÷·½·¨ÊÇÏȽ«ËÑË÷×Ö·û´®·Ö´ÊÔÙʹÓø÷¸÷´ÊÌõ´ÓË÷ÒýÖÐËÑË÷match queryÓëTerm queryÇø±ðÊÇmatch queryÔÚËÑË÷ǰÏȽ«ËÑË÷Òªº¦×Ö·Ö´ÊÔÙÄø÷¸÷´ÊÓïÈ¥Ë÷ÒýÖÐËÑË÷·¢ËÍ£ºpost http://localhost:9200/xc_course/doc/_search{ "query": { "match" : { "description" : { "query" : "spring¿ª·¢", "operator" : "or" } } }}query£ºËÑË÷µÄÒªº¦×Ö¹ØÓÚÓ¢ÎÄÒªº¦×ÖÈôÊÇÓжà¸öµ¥´ÊÔòÖÐÐÄÒªÓðë½Ç¶ººÅÍÑÀë¶ø¹ØÓÚÖÐÎÄÒªº¦×ÖÖÐÐÄ¿ÉÒÔÓöººÅÍÑÀëÒ²¿ÉÒÔ²»±Øoperator£ºor ÌåÏÖ Ö»ÒªÓÐÒ»¸ö´ÊÔÚÎĵµÖзºÆðÔò¾ÍÇкÏÌõ¼þandÌåÏÖÿ¸ö´Ê¶¼ÔÚÎĵµÖзºÆðÔò²ÅÇкÏÌõ¼þÉϱߵÄËÑË÷µÄÖ´ÐÐÀú³ÌÊÇ£º1¡¢½«spring¿ª·¢·Ö´Ê·ÖΪspring¡¢¿ª·¢Á½¸ö´Ê2¡¢ÔÙʹÓÃspringºÍ¿ª·¢Á½¸ö´ÊȥƥÅäË÷ÒýÖÐËÑË÷3¡¢ÓÉÓÚÉèÖÃÁËoperatorΪorÖ»ÒªÓÐÒ»¸ö´ÊÆ¥ÅäÀÖ³ÉÔò¾Í·µ»Ø¸ÃÎĵµJavaClient£º//ƾ֤Ҫº¦×ÖËÑË÷@Test public void testMatchQuery() throws IOException, ParseException { //ËÑË÷ÇëÇó¹¤¾ß SearchRequest searchRequest = new SearchRequest("xc_course"); //ÉèÖÃÀàÐÍ searchRequest.types("doc"); //ËÑË÷Ô´¹¹½¨¹¤¾ß SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder(); //MatcherQuery searchSourceBuilder.query(QueryBuilders.matchQuery("description","spring¿ª·¢").operator(Operator.OR)); //sourceÔ´×ֶιýÂÇ searchSourceBuilder.fetchSource(new String[]{"name","studymodel","price","timestamp"},new String[]{}); //ÉèÖÃËÑË÷Ô´ searchRequest.source(searchSourceBuilder); //Ö´ÐÐËÑË÷ SearchResponse searchResponse = client.search(searchRequest); //ËÑË÷Æ¥ÅäЧ¹û SearchHits hits = searchResponse.getHits(); //ËÑË÷×ܼͼÊý long totalHits = hits.totalHits; //Æ¥Åä¶È½Ï¸ßµÄǰN¸öÎĵµ SearchHit[] searchHits = hits.getHits(); //ÈÕÆÚÃûÌû¯¹¤¾ß SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); for(SearchHit hit:searchHits){ //Îĵµid String id = hit.getId(); //Ô´ÎĵµÄÚÈÝ Map sourceAsMap = hit.getSourceAsMap(); //»ñȡԴÎĵµname String name = (String) sourceAsMap.get("name"); String description = (String) sourceAsMap.get("description"); String studymodel = (String) sourceAsMap.get("studymodel"); Double price = (Double) sourceAsMap.get("price"); Date timestamp = dateFormat.parse((String) sourceAsMap.get("timestamp")); System.out.println(name); System.out.println(studymodel); System.out.println(description); } }2¡¢minimum_should_matchÉϱßʹÓõÄoperator = orÌåÏÖÖ»ÒªÓÐÒ»¸ö´ÊÆ¥ÅäÉϾ͵÷ÖÈôÊÇʵÏÖÈý¸ö´ÊÖÁÉÙÓÐÁ½¸ö´ÊÆ¥ÅäÔõÑùʵÏÖʹÓÃminimum_should_match¿ÉÒÔÖ¸¶¨ÎĵµÆ¥Åä´ÊµÄÕ¼±È£ººÃ±ÈËÑË÷Óï¾äÈçÏ£º{ "query": { "match" : { "description" : { "query" : "spring¿ª·¢¿ò¼Ü", "minimum_should_match": "80%" } } }}spring¿ª·¢¿ò¼Ü»á±»·ÖΪÈý¸ö´Ê£ºspring¡¢¿ª·¢¡¢¿ò¼ÜÉèÖÃ"minimum_should_match": "80%"ÌåÏÖÈý¸ö´ÊÔÚÎĵµµÄÆ¥ÅäÕ¼±ÈΪ80%¼´3*0.8=2.4ÏòÉÏÈ¡ÕûµÃ2ÌåÏÖÖÁÉÙÓÐÁ½¸ö´ÊÔÚÎĵµÖÐҪƥÅäÀֳɶÔÓ¦µÄRestClientÈçÏ£º//MatcherQuery searchSourceBuilder.query(QueryBuilders.matchQuery("description","spring¿ª·¢¿ò¼Ü") .operator(Operator.OR) .minimumShouldMatch("80%")); multi QueryÉϱßѧϰµÄtermQueryºÍmatchQueryÒ»´ÎÖ»ÄÜÆ¥ÅäÒ»¸öField±¾½ÚѧϰmultiQueryÒ»´Î¿ÉÒÔÆ¥Åä¶à¸ö×Ö¶Î1¡¢»ù±¾Ê¹Óõ¥ÏîÆ¥ÅäÊÇÔÚÒ»¸öfieldÖÐȥƥÅä¶àÏîÆ¥ÅäÊÇÄÃÒªº¦×ÖÈ¥¶à¸öFieldÖÐÆ¥ÅäÀý×Ó£º·¢ËÍ£ºpost http://localhost:9200/xc_course/doc/_searchÄÃÒªº¦×Ö spring cssȥƥÅäname ºÍdescription×Ö¶Î{ "query": { "multi_match" : { "query" : "spring css", "minimum_should_match": "50%", "fields": [ "name", "description" ] } }}2¡¢ÌáÉýboostÆ¥Åä¶à¸ö×Ö¶Îʱ¿ÉÒÔÌáÉý×ֶεÄboost£¨È¨ÖØ£©À´Ìá¸ßµÃ·ÖÀý×Ó£ºÌáÉýboost֮ǰÖ´ÐÐϱߵÄÅÌÎÊ£º{ "query": { "multi_match" : { "query" : "spring css", "minimum_should_match": "50%", "fields": [ "name", "description" ] } }}ͨ¹ýÅÌÎÊ·¢Ã÷BootstrapÅÅÔÚǰ±ßÌáÉýboostͨ³£Òªº¦×ÖÆ¥ÅäÉÏnameµÄȨÖ÷Òª±ÈÆ¥ÅäÉÏdescriptionµÄÈ¨ÖØ¸ßÕâÀï¿ÉÒÔ¶ÔnameµÄÈ¨ÖØÌáÉý{ "query": { "multi_match" : { "query" : "spring css", "minimum_should_match": "50%", "fields": [ "name^10", "description" ] } }}name^10 ÌåÏÖÈ¨ÖØÌáÉý10±¶Ö´ÐÐÉϱߵÄÅÌÎÊ·¢Ã÷nameÖаüÀ¨springÒªº¦×ÖµÄÎĵµÅÅÔÚǰ±ßJavaClient://ËÑË÷Ô´¹¹½¨¹¤¾ßSearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();//MultiMatcherQueryMultiMatchQueryBuilder matchQueryBuilder = QueryBuilders.multiMatchQuery("spring css", "name", "description") .minimumShouldMatch("50%") .field("name", 10);searchSourceBuilder.query(matchQueryBuilder);²¼¶ûÅÌÎʲ¼¶ûÅÌÎʶÔÓ¦ÓÚLuceneµÄBooleanQueryÅÌÎÊʵÏÖ½«¶à¸öÅÌÎÊ×éºÏÆðÀ´Èý¸ö²ÎÊý£ºmust£ºÎĵµ±ØÐèÆ¥ÅämustËù°üÀ¨µÄÅÌÎÊÌõ¼þÏ൱ÓÚ AND should£ºÎĵµÓ¦¸ÃÆ¥ÅäshouldËù°üÀ¨µÄÅÌÎÊÌõ¼þÆäÖеÄÒ»¸ö»ò¶à¸öÏ൱ÓÚ "OR" must_not£ºÎĵµ²»¿ÉÆ¥Åämust_notËù°üÀ¨µÄ¸ÃÅÌÎÊÌõ¼þÏ൱ÓÚNOT»®·ÖʹÓÃmust¡¢should¡¢must_not²âÊÔϱߵÄÅÌÎÊ£º·¢ËÍ£ºPOST http://localhost:9200/xc_course/doc/_search{ "_source" : [ "name", "studymodel", "description"], "from" : 0, "size" : 1, "query": { "bool" : { "must":[ { "multi_match" : { "query" : "spring css", "minimum_should_match": "50%", "fields": [ "name^10", "description" ] } }, { "term":{ "studymodel" : "201001" } } ] } }}must£ºÌåÏÖ±ØÐè¶à¸öÅÌÎÊÌõ¼þ±ØÐè¶¼Öª×㣨ͨ³£Ê¹ÓÃmust£©should£ºÌåÏÖ»òÕß¶à¸öÅÌÎÊÌõ¼þÖ»ÒªÓÐÒ»¸öÖª×ã¼´¿Émust_not£ºÌåÏÖ·ÇJavaClient£º//BoolQuery½«ËÑË÷Òªº¦×Ö·Ö´ÊÄ÷ִÊÈ¥Ë÷Òý¿âËÑË÷//ËÑË÷Ô´¹¹½¨¹¤¾ßSearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();//MultiMatcherQueryMultiMatchQueryBuilder matchQueryBuilder = QueryBuilders.multiMatchQuery("spring css", "name", "description") .minimumShouldMatch("50%") .field("name", 10);//TermQueryTermQueryBuilder termQueryBuilder = QueryBuilders.termQuery("studymodel", "201001");//boolQueryBuilderBoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();//½«MultiMatcherQueryºÍTermQuery×éÖ¯ÔÚÒ»ÆðboolQueryBuilder.must(matchQueryBuilder);boolQueryBuilder.must(termQueryBuilder);searchSourceBuilder.query(boolQueryBuilder);¹ýÂÇÆ÷¹ýÂÇÊÇÕë¶ÔËÑË÷µÄЧ¹û¾ÙÐйýÂǹýÂÇÆ÷Ö÷ÒªÅжϵÄÊÇÎĵµÊÇ·ñÆ¥Å䲻ȥÅÌËãºÍÅжÏÎĵµµÄÆ¥Åä¶ÈµÃ·ÖÒÔÊǹýÂÇÆ÷ÐÔÄܱÈÅÌÎÊÒª¸ßÇÒÀû±ã»º´æÍƼöÖ»¹ÜʹÓùýÂÇÆ÷ȥʵÏÖÅÌÎÊ»òÕß¹ýÂÇÆ÷ºÍÅÌÎÊÅäºÏʹÓùýÂÇÆ÷ÔÚ²¼¶ûÅÌÎÊÖÐʹÓÃϱßÊÇÔÚËÑË÷Ч¹ûµÄ»ù´¡ÉϾÙÐйýÂÇ£º{ "_source" : [ "name", "studymodel", "description","price"], "query": { "bool" : { "must":[ { "multi_match" : { "query" : "spring css", "minimum_should_match": "50%", "fields": [ "name^10", "description" ] } } ], "filter": [ { "term": { "studymodel": "201001" }}, { "range": { "price": { "gte": 60 ,"lte" : 100}}} ] } }}range£º¹æÄ£¹ýÂDZ£´æ´óÓÚ¼´ÊÇ60 ²¢ÇÒСÓÚ¼´ÊÇ100µÄ¼Í¼term£ºÏîÆ¥Åä¹ýÂDZ£´æstudymodel¼´ÊÇ"201001"µÄ¼Í¼×¢ÖØ£ºrangeºÍtermÒ»´ÎÖ»ÄܶÔÒ»¸öFieldÉèÖùæÄ£¹ýÂÇclient£º//ËÑË÷Ô´¹¹½¨¹¤¾ßSearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();//MultiMatcherQueryMultiMatchQueryBuilder matchQueryBuilder = QueryBuilders.multiMatchQuery("spring css", "name", "description") .minimumShouldMatch("50%") .field("name", 10);//boolQueryBuilderBoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();//½«MultiMatcherQueryºÍTermQuery×éÖ¯ÔÚÒ»ÆðboolQueryBuilder.must(matchQueryBuilder);//Ìí¼Ó¹ýÂÇÆ÷//Ïî¹ýÂÇboolQueryBuilder.filter(QueryBuilders.termQuery("studymodel","201001"));//¹æÄ£¹ýÂÇboolQueryBuilder.filter(QueryBuilders.rangeQuery("price").gte(60).lte(100));searchSourceBuilder.query(boolQueryBuilder);ÅÅÐò¿ÉÒÔÔÚ×Ö¶ÎÉÏÌí¼ÓÒ»¸ö»ò¶à¸öÅÅÐòÖ§³ÖÔÚkeyword¡¢date¡¢floatµÈÀàÐÍÉÏÌí¼ÓtextÀàÐ͵Ä×Ö¶ÎÉϲ»ÔÊÐíÌí¼ÓÅÅÐò·¢ËÍ POST http://localhost:9200/xc_course/doc/_search¹ýÂÇ0--10Ôª¼ÛÇ®¹æÄ£µÄÎĵµ²¢ÇÒ¶ÔЧ¹û¾ÙÐÐÅÅÐòÏȰ´studymodel½µÐòÔÙ°´¼ÛÇ®ÉýÐò{ "_source" : [ "name", "studymodel", "description","price"], "query": { "bool" : { "filter": [ { "range": { "price": { "gte": 0 ,"lte" : 100}}} ] } }, "sort" : [ { "studymodel" : "desc" }, { "price" : "asc" } ]}client£º@Testpublic void testSort() throws IOException, ParseException { //ËÑË÷ÇëÇó¹¤¾ß SearchRequest searchRequest = new SearchRequest("xc_course"); //ÉèÖÃÀàÐÍ searchRequest.types("doc"); //ËÑË÷Ô´¹¹½¨¹¤¾ß SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder(); //sourceÔ´×ֶιýÂÇ searchSourceBuilder.fetchSource(new String[]{"name","studymodel","price","timestamp"},new String[]{}); //boolQueryBuilder BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery(); //Ìí¼Ó¹ýÂÇÆ÷ //¹æÄ£¹ýÂÇ boolQueryBuilder.filter(QueryBuilders.rangeQuery("price").gte(0).lte(100)); searchSourceBuilder.query(boolQueryBuilder); //ÉèÖÃËÑË÷Ô´ searchRequest.source(searchSourceBuilder); //ÉèÖÃÅÅÐò searchSourceBuilder.sort("studymodel", SortOrder.DESC); searchSourceBuilder.sort("price", SortOrder.ASC); //Ö´ÐÐËÑË÷ SearchResponse searchResponse = client.search(searchRequest); //ËÑË÷Æ¥ÅäЧ¹û SearchHits hits = searchResponse.getHits(); //ËÑË÷×ܼͼÊý long totalHits = hits.totalHits; //Æ¥Åä¶È½Ï¸ßµÄǰN¸öÎĵµ SearchHit[] searchHits = hits.getHits(); //ÈÕÆÚÃûÌû¯¹¤¾ß SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); for(SearchHit hit:searchHits){ //Îĵµid String id = hit.getId(); //Ô´ÎĵµÄÚÈÝ Map sourceAsMap = hit.getSourceAsMap(); //»ñȡԴÎĵµname String name = (String) sourceAsMap.get("name"); String description = (String) sourceAsMap.get("description"); String studymodel = (String) sourceAsMap.get("studymodel"); Double price = (Double) sourceAsMap.get("price"); Date timestamp = dateFormat.parse((String) sourceAsMap.get("timestamp")); System.out.println(name); System.out.println(studymodel); System.out.println(description); }}¸ßÁÁÏÔʾ¸ßÁÁÏÔʾ¿ÉÒÔ½«ËÑË÷Ч¹ûÒ»¸ö»ò¶à¸ö×ÖÍ»³öÏÔʾÒÔ±ãÏòÓû§Õ¹Ê¾Æ¥ÅäÒªº¦×ÖµÄλÖÃÔÚËÑË÷Óï¾äÖÐÌí¼Óhighlight¼´¿ÉʵÏÖÈçÏ£ºPost£º http://127.0.0.1:9200/xc_course/doc/_search{ "_source" : [ "name", "studymodel", "timestamp","price"], "query": { "bool" : { "must":[ { "multi_match" : { "query" : "¿ª·¢¿ò¼Ü", "minimum_should_match": "50%", "fields": [ "name^10", "description" ] } } ], "filter": [ { "range": { "price": { "gte": 0 ,"lte" : 100}}} ] } }, "sort" : [ { "price" : "asc" } ], "highlight": { "pre_tags": [""], "post_tags": [""], "fields": { "name": {}, "description":{} } }}client´úÂëÈçÏ£º@Testpublic void testHighLight() throws IOException, ParseException { //ËÑË÷ÇëÇó¹¤¾ß SearchRequest searchRequest = new SearchRequest("xc_course"); //ÉèÖÃÀàÐÍ searchRequest.types("doc"); //ËÑË÷Ô´¹¹½¨¹¤¾ß SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder(); //sourceÔ´×ֶιýÂÇ searchSourceBuilder.fetchSource(new String[]{"name","studymodel","price","timestamp"},new String[]{}); //MultiMatcherQuery MultiMatchQueryBuilder matchQueryBuilder = QueryBuilders.multiMatchQuery("¿ª·¢¿ò¼Ü", "name", "description") .minimumShouldMatch("80%") .field("name", 10); //boolQueryBuilder BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery(); boolQueryBuilder.must(matchQueryBuilder); //Ìí¼Ó¹ýÂÇÆ÷ //¹æÄ£¹ýÂÇ boolQueryBuilder.filter(QueryBuilders.rangeQuery("price").gte(0).lte(100)); searchSourceBuilder.query(boolQueryBuilder); //ÉèÖÃËÑË÷Ô´ searchRequest.source(searchSourceBuilder); //ÉèÖÃÅÅÐò searchSourceBuilder.sort("studymodel", SortOrder.DESC); searchSourceBuilder.sort("price", SortOrder.ASC); //ÉèÖøßÁÁ HighlightBuilder highlightBuilder = new HighlightBuilder(); highlightBuilder.preTags(""); highlightBuilder.postTags(""); highlightBuilder.fields().add(new HighlightBuilder.Field("name")); searchSourceBuilder.highlighter(highlightBuilder); //Ö´ÐÐËÑË÷ SearchResponse searchResponse = client.search(searchRequest); //ËÑË÷Æ¥ÅäЧ¹û SearchHits hits = searchResponse.getHits(); //ËÑË÷×ܼͼÊý long totalHits = hits.totalHits; //Æ¥Åä¶È½Ï¸ßµÄǰN¸öÎĵµ SearchHit[] searchHits = hits.getHits(); //ÈÕÆÚÃûÌû¯¹¤¾ß SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); for(SearchHit hit:searchHits){ //Îĵµid String id = hit.getId(); //Ô´ÎĵµÄÚÈÝ Map sourceAsMap = hit.getSourceAsMap(); //»ñȡԴÎĵµname String name = (String) sourceAsMap.get("name"); //È¡³ö¸ßÁÁ×Ö¶Î Map highlightFields = hit.getHighlightFields(); if(highlightFields!=null){ //È¡³öname¸ßÁÁ×Ö¶Î HighlightField nameField = highlightFields.get("name"); if(nameField!=null){ Text[] fragments = nameField.fragments(); StringBuffer stringBuffer = new StringBuffer(); for(Text text:fragments){ stringBuffer.append(text); } name = stringBuffer.toString(); } } String description = (String) sourceAsMap.get("description"); String studymodel = (String) sourceAsMap.get("studymodel"); Double price = (Double) sourceAsMap.get("price"); Date timestamp = dateFormat.parse((String) sourceAsMap.get("timestamp")); System.out.println(name); System.out.println(studymodel); System.out.println(description); }}¼¯Èº¹ÜÀí¼¯Èº½á¹¹ESͨ³£ÒÔ¼¯Èº·½·¨ÊÂÇéÕâÑù×ö²»µ«Äܹ»Ìá¸ß ESµÄËÑË÷ÄÜÁ¦»¹¿ÉÒÔ´¦Öóͷ£´óÊý¾ÝËÑË÷µÄÄÜÁ¦ͬʱҲÔöÌíÁËϵͳµÄÈÝ´íÄÜÁ¦¼°¸ß¿ÉÓÃES¿ÉÒÔʵÏÖPB¼¶Êý¾ÝµÄËÑË÷ÏÂͼÊÇES¼¯Èº½á¹¹µÄʾÒâͼ£º´ÓÉÏͼ×ܽáÒÔÏ¿´·¨£º1¡¢½áµãES¼¯ÈºÓɶà¸ö·þÎñÆ÷×é³Éÿ¸ö·þÎñÆ÷¼´ÎªÒ»¸öNode½áµã(¸Ã·þÎñÖ»°²ÅÅÁËÒ»¸öESÀú³Ì)2¡¢·ÖƬµ±ÎÒÃǵÄÎĵµÁ¿ºÜ´óʱÓÉÓÚÄÚ´æºÍÓ²Å̵ÄÏÞÖÆͬʱҲΪÁËÌá¸ßESµÄ´¦Öóͷ£ÄÜÁ¦¡¢ÈÝ´íÄÜÁ¦¼°¸ß¿ÉÓÃÄÜÁ¦ÎÒÃǽ«Ë÷Òý·Ö³ÉÈô¸É·ÖƬÿ¸ö·ÖƬ¿ÉÒÔ·ÅÔÚ²î±ðµÄ·þÎñÆ÷ÕâÑù¾ÍʵÏÖÁ˶à¸ö·þÎñÆ÷ÅäºÏ¶ÔÍâÌṩË÷Òý¼°ËÑË÷·þÎñÒ»¸öËÑË÷ÇëÇó¹ýÀ´»á»®·Ö´Ó¸÷¸÷·ÖƬȥÅÌÎÊ×îºó½«ÅÌÎʵ½µÄÊý¾ÝºÏ²¢·µ»Ø¸øÓû§3¡¢¸±±¾ÎªÁËÌá¸ßESµÄ¸ß¿ÉÓÃͬʱҲΪÁËÌá¸ßËÑË÷µÄÍÌÍÂÁ¿ÎÒÃǽ«·ÖƬ¸´ÖÆÒ»·Ý»ò¶à·Ý´æ´¢ÔÚÆäËüµÄ·þÎñÆ÷ÕâÑù×ÝȻĿ½ñµÄ·þÎñÆ÷¹ÒµôÁËÓµÓи±±¾µÄ·þÎñÆ÷ÕÕ³£¿ÉÒÔÌṩ·þÎñ4¡¢Ö÷½áµãÒ»¸ö¼¯ÈºÖлáÓÐÒ»¸ö»ò¶à¸öÖ÷½áµãÖ÷½áµãµÄ×÷ÓÃÊǼ¯Èº¹ÜÀíºÃ±ÈÔöÌí½ÚµãÒÆ³ý½ÚµãµÈÖ÷½áµã¹ÒµôºóES»áÖØÐÂѡһ¸öÖ÷½áµã5¡¢½áµãת·¢Ã¿¸ö½áµã¶¼ÖªµÀÆäËü½áµãµÄÐÅÏ¢ÎÒÃÇ¿ÉÒÔ¶Ôí§ÒâÒ»¸ö½áµãÌᳫÇëÇóÎüÊÕÇëÇóµÄ½áµã»áת·¢¸øÆäËü½áµãÅÌÎÊÊý¾Ý´î½¨¼¯ÈºÏ±ߵÄÀý×ÓʵÏÖ½¨ÉèÒ»¸ö2½áµãµÄ¼¯Èº²¢ÇÒË÷ÒýµÄ·ÖƬÎÒÃÇÉèÖÃ2ƬÿƬһ¸ö¸±±¾½áµãµÄÈý¸ö½ÇÉ«Ö÷½áµã£ºmaster½ÚµãÖ÷ÒªÓÃÓÚ¼¯ÈºµÄ¹ÜÀí¼°Ë÷Òý ºÃ±ÈÐÂÔö½áµã¡¢·ÖƬ·ÖÅÉ¡¢Ë÷ÒýµÄÐÂÔöºÍɾ³ýµÈ Êý¾Ý½áµã£ºdata ½ÚµãÉÏÉúÑÄÁËÊý¾Ý·ÖƬËüÈÏÕæË÷ÒýºÍËÑË÷²Ù×÷ ¿Í»§¶Ë½áµã£ºclient ½Úµã½ö×÷ΪÇëÇó¿Í»§¶Ë±£´æclientµÄ×÷ÓÃÒ²×÷Ϊ¸ºÔØÆ½ºâÆ÷client ½Úµã²»´æÊý¾ÝÖ»Êǽ«ÇëÇóÆ½ºâת·¢µ½ÆäËü½áµãͨ¹ýϱßÁ½Ïî²ÎÊýÀ´ÉèÖýáµãµÄ¹¦Ð§£ºnode.master: #ÊÇ·ñÔÊÐíΪÖ÷½áµãnode.data: #ÔÊÐí´æ´¢Êý¾Ý×÷ΪÊý¾Ý½áµãnode.ingest: #ÊÇ·ñÔÊÐí³ÉΪЭµ÷ÀíµãËÄÖÖ×éºÏ·½·¨£ºmaster=truedata=true£º¼´ÊÇÖ÷½áµãÓÖÊÇÊý¾Ý½áµãmaster=falsedata=true£º½öÊÇÊý¾Ý½áµãmaster=truedata=false£º½öÊÇÖ÷½áµã²»´æ´¢Êý¾Ýmaster=falsedata=false£º¼´²»ÊÇÖ÷½áµãÒ²²»ÊÇÊý¾Ý½áµã´Ëʱ¿ÉÉèÖÃingestΪtrueÌåÏÖËüÊÇÒ»¸ö¿Í»§¶Ë½¨Éè½áµã 1½âѹelasticsearch-6.2.1.zip µ½ F:\devenv\elasticsearch\es-cloud-1\elasticsearch-6.2.1½áµã1¶ÔÍâ·þÎñµÄhttp¶Ë¿ÚÊÇ£º9200¼¯Èº¹ÜÀí¶Ë¿ÚÊÇ9300ÉèÖÃelasticsearch.yml½áµãÃû£ºxc_node_1elasticsearch.ymlÄÚÈÝÈçÏÂcluster.name: xuechengnode.name: xc_node_1network.host: 0.0.0.0http.port: 9200transport.tcp.port: 9300node.master: truenode.data: truediscovery.zen.ping.unicast.hosts: ["0.0.0.0:9300", "0.0.0.0:9301"]discovery.zen.minimum_master_nodes: 1node.ingest: truenode.max_local_storage_nodes: 2path.data: D:\ElasticSearch\elasticsearch-6.2.1-1\datapath.logs: D:\ElasticSearch\elasticsearch-6.2.1-1\logshttp.cors.enabled: truehttp.cors.allow-origin: /.*/Æô¶¯½áµã1½¨Éè½áµã 2½âѹelasticsearch-6.2.1.zip µ½ F:\devenv\elasticsearch\es-cloud-2\elasticsearch-6.2.1½áµã1¶ÔÍâ·þÎñµÄhttp¶Ë¿ÚÊÇ£º9201¼¯Èº¹ÜÀí¶Ë¿ÚÊÇ9301½áµãÃû£ºxc_node_2elasticsearch.ymlÄÚÈÝÈçÏÂcluster.name: xuechengnode.name: xc_node_2network.host: 0.0.0.0http.port: 9201transport.tcp.port: 9301node.master: truenode.data: truediscovery.zen.ping.unicast.hosts: ["0.0.0.0:9300", "0.0.0.0:9301"]discovery.zen.minimum_master_nodes: 1node.ingest: truenode.max_local_storage_nodes: 2path.data: D:\ElasticSearch\elasticsearch-6.2.1-2\datapath.logs: D:\ElasticSearch\elasticsearch-6.2.1-2\logshttp.cors.enabled: truehttp.cors.allow-origin: /.*/Æô¶¯½áµã2½¨ÉèË÷Òý¿â1£©Ê¹ÓÃheadÁ¬ÉÏÆäÖÐÒ»¸ö½áµãÉÏͼÌåÏÖÁ½¸ö½áµãÒѾ­½¨ÉèÀÖ³É2£©Ï±߽¨ÉèË÷Òý¿â¹²2¸ö·ÖƬÿ¸ö·ÖƬһ¸ö¸±±¾½¨ÉèÀÖ³ÉË¢ÐÂhead:ÉÏͼ¿ÉÒÔ¿´µ½¹²ÓÐ4¸ö·ÖƬÆäÖÐÁ½¸ö·ÖƬÊǸ±±¾3£©Ã¿¸ö½áµã×°ÖÃIK·Ö´ÊÆ÷ÂÔ¼¯ÈºµÄ¿µ½¡Í¨¹ý»á¼û GET /_cluster/health À´Éó²éElasticsearch µÄ¼¯Èº¿µ½¡ÇéÐÎÓÃÈýÖÖÑÕÉ«À´Õ¹Ê¾¿µ½¡×´Ì¬£º green ¡¢ yellow »òÕß red green£ºËùÓеÄÖ÷·ÖƬºÍ¸±ÌìְƬ¶¼Õý³£ÔËÐÐ yellow£ºËùÓеÄÖ÷·ÖƬ¶¼Õý³£ÔËÐе«ÓÐЩ¸±ÌìְƬÔËÐв»Õý³£ red£º±£´æÖ÷·ÖƬÔËÐв»Õý³£GetÇëÇó£ºhttp://localhost:9200/_cluster/healthÏìӦЧ¹û£º{ "cluster_name": "xuecheng", "status": "green", "timed_out": false, "number_of_nodes": 2, "number_of_data_nodes": 2, "active_primary_shards": 2, "active_shards": 4, "relocating_shards": 0, "initializing_shards": 0, "unassigned_shards": 0, "delayed_unassigned_shards": 0, "number_of_pending_tasks": 0, "number_of_in_flight_fetch": 0, "task_max_waiting_in_queue_millis": 0, "active_shards_percent_as_number": 100}²âÊÔ1£©½¨ÉèÓ³É䲢дÈëÎĵµÅþÁ¬ ÆäÖÐí§Òâһ̨½áµã½¨ÉèÓ³ÉäдÈëÎĵµPost http://localhost:9200/xc_course/doc/3{"name": "spring¿ª·¢»ù´¡","description": "spring ÔÚjavaÁìÓòºÜÊÇÊ¢ÐÐjavaÈí¼þ¿ª·¢Ö°Ô±¶¼ÔÚÓÃ","studymodel": "201001","price":66.6}ÏìӦЧ¹û£º{ "_index": "xc_course", "_type": "doc", "_id": "3", "_version": 1, "result": "created", "_shards": { "total": 2, "successful": 2, "failed": 0 }, "_seq_no": 0, "_primary_term": 1}´ÓÉϱߵÄÌáÐѿɿ´³öÁ½¸ö·ÖƬ¶¼ÉúÑÄÀÖ³É2£©ËÑË÷ÏòÆäËüÒ»¸ö½áµãÌᳫËÑË÷ÇëÇóÅÌÎÊËùÓÐÊý¾Ý3£©¹Ø±ÕÒ»¸ö½áµãES»áÖØÐÂÑ¡ÖÐÒ»¸öÖ÷½áµã£¨Ìõ¼þÔÚÉèÖýáµãʱÔÊÐíËü¿ÉÒÔΪÖ÷½áµã£©´ËʱÏò»îµÄ½áµãÌᳫËÑË÷ÇëÇóÈÔÈ»Õý³£4£©Ìí¼ÓÒ»¸ö½áµãÌí¼Ó½áµã3¶Ë¿ÚÉèÖÃΪ£ºhttp¶Ë¿ÚÊÇ£º9202¼¯Èº¹ÜÀí¶Ë¿ÚÊÇ9302½áµãÃû£ºxc_node_3´Ë½áµãµÄÉèÖãºnode.master: false node.data: trueÆô¶¯½áµã3Ë¢ÐÂheadÏÂͼÏÔʾES½«·ÖƬ¼°¸±±¾ÔȳƷÖÔÚÁË3¸ö½áµã£¨×¢ÖØÇéÐβî±ðÂþÑܵÄЧ¹û¿ÉÄܲî±ð£©Ïò½áµã3ÌᳫËÑË÷ÇëÇó£ºGet£º http://127.0.0.1:9202/xc_course/doc/_searchËùÓÐÊý¾Ý¿É±»Õý³£ËÑË÷µ½

¡¶ÊÖÊÖ±¾ÉÙÅ®µÄÐÄÄÐŮδÍê»éǰµÄ½û¼É_ÈËÃÇ_ʱ´ú_ÂüÄÈ¡·ÊÓÆµËµÃ÷£ºÃ»ÓÐÖǻ۹âÔη½Ô´¾ø²»»áÉú³¤µÃÔÆÔÆÑ¸ÃÍÄÜÉú³¤µ½ÔÆÔÆË®Æ½Ö´½Ì³õÆÚ°¢¶ûÌØËþÃæÁÙµÄÌôÕ½²»¿Éν²»´óÇò¶ÓÕóÈÝÀÏ»¯Õ½ÊõϵͳÔÓÂÒÒ×·þÊÒÆø·ÕµÍÃÔÇòÃÔÃÇÒ²¶ÔδÀ´³äÂúÒÉÂǰ¢¶ûÌØËþûÓм±ÓÚÇó³É¶øÊÇÎÈÔúÎÈ´òÖð²½ÍÆÐÐ×Ô¼ºµÄÖØÐÞÍýÏëÕâ²»¾ÍÊÇÀíÏëÓëÏÖʵµÄ²î±ð

µ¼ÑÝ£º
ÇÇ¡¤Ë¹ÅÁŵ/
±à¾ç£º
ÄÈËþÀòÑÇ¡¤°Í¶û¶à/
Ö÷ÑÝ£º
Âõ¿Ë¶û¡¤ÇпËÀû˹/ ÅÁÌØÀöÏÄ¡¤°¢¿üÌØ/ ÄÈËþÀò¡¤ÁÖ˹¿¨/ º£¶÷×È¡¤¸ù´ïÌØ/ Ôú¿Ë¡¤Èû¶ûÎÂ/
¸üУº

2025-10-15 21:23:19

±¸×¢£º
¹úÓï
ÆÀ¼Û£º
ÊÖÊÖ±¾ÉÙÅ®µÄÐÄÄÐŮδÍê»éǰµÄ½û¼É_ÈËÃÇ_ʱ´ú_ÂüÄÈ

Ñ¡¼¯²¥·Å
ÅÅÐò

Ñ¡Ôñ²¥·ÅÔ´
¿ìËÙ²¥·Å¢Ù
µÚ1¼¯ µÚ2¼¯ µÚ3¼¯ µÚ4¼¯ µÚ5¼¯ µÚ6¼¯ µÚ7¼¯ µÚ8¼¯ µÚ9¼¯ µÚ10¼¯ µÚ11¼¯ µÚ12¼¯ µÚ13¼¯ µÚ14¼¯ µÚ15¼¯ µÚ16¼¯ µÚ17¼¯ µÚ18¼¯ µÚ19¼¯ µÚ20¼¯ µÚ21¼¯ µÚ22¼¯ µÚ23¼¯ µÚ24¼¯ µÚ25¼¯ µÚ26¼¯ µÚ27¼¯ µÚ28¼¯ µÚ29¼¯ µÚ30¼¯ µÚ31¼¯ µÚ32¼¯ µÚ33¼¯ µÚ34¼¯ µÚ35¼¯ µÚ36¼¯ µÚ37¼¯ µÚ38¼¯ µÚ39¼¯

Ïà¹ØÍÆ¼öTUIJIAN

º«Óï¶Ô°×
¶¹°ê:5.7·Ö
Î÷ÓμÇ1¹úÓï
Ó¢Óï¶Ô°×
¶¹°ê:6.4·Ö
¹ÅÀϵÄÍ¥Ôº
ÂÞÍþÓï
¶¹°ê:7.3·Ö
²»ËÙÖ®Ô¼¹úÓï
ëÀûÓï
¶¹°ê:3.4·Ö
˹°Í´ï¿Ë˹
¹úÓï¶Ô°×
¶¹°ê:4.3·Ö
ÁÒÈշ籩¡¾¹úÓï¡¿
ëÀûÓï
¶¹°ê:6.3·Ö
³õÁµ½ÌÎÒµÄ18¼þÊÂ
Ó¢Óï¶Ô°×
¶¹°ê:7.4·Ö
ÔÆÐãÐÐ
¶¹°ê:5.8·Ö
ÕÉ·òµÄÉñÃØ
ÄϷǶ԰×
¶¹°ê:8.6·Ö
°®ÔÚ¸ßÖÐ
ÈÕÓï¶Ô°×
¶¹°ê:6.7·Ö
ÐÂСƨº¢ÈÕÖ¾
ÄϷǶ԰×
¶¹°ê:4.4·Ö
˹´óÁÖ¸ñÀÕ´óѪս
ÄϷǶ԰×
¶¹°ê:5.7·Ö
Ë­ÊÇÐ×ÊÖ
¶¹°ê:7.5·Ö
¼ÌĸºóÂè
Ì©Óï¶Ô°×
¶¹°ê:4.8·Ö
À§¶·99ºÅÇôÊÒ
½Ý¿ËÓï
¶¹°ê:5.3·Ö
Áµ·çÖ®ÏÄ

ÕýÔÚÈÈÓ³

º«Óï¶Ô°× VideoZi
¶¹°ê:6.3·Ö
Ô¼º²ÄáÓë¿ËÀ³µÂ
Ì©Óï¶Ô°× VideoZi
¶¹°ê:4.6·Ö
¼Ò×åÈÙÒ«¹úÓï
ÂÞÍþÓï VideoZi
¶¹°ê:5.5·Ö
´«ÆæÓ¢ÐÛ
VideoZi
¶¹°ê:3.8·Ö
È˼費²ð
Ì©Óï¶Ô°× VideoZi
¶¹°ê:7.5·Ö
ÌìÂíÐпյÄÁåľ
½Ý¿ËÓï VideoZi
¶¹°ê:3.3·Ö
Åä½ÇÈËÉú
ëÀûÓï VideoZi
¶¹°ê:8.3·Ö
º½ÅÄÖйúµÚÒ»¼¾
ÂÞÍþÓï VideoZi
¶¹°ê:5.6·Ö
³ðÀÏÒ¯Ò¯
Ì©Óï¶Ô°× VideoZi
¶¹°ê:5.5·Ö
¶¬Òñ¹¦2£ºÈ­°ÔÌìÏÂ
ÈÕÓï¶Ô°× VideoZi
¶¹°ê:6.4·Ö
µÚÊ®¶þÒ¹
º«Óï¶Ô°× VideoZi
¶¹°ê:6.8·Ö
ºìµÆ
º«Óï¶Ô°× VideoZi
¶¹°ê:5.4·Ö
ÀË»¨½ðÈÚµÀ 5
ÆäËû VideoZi
¶¹°ê:3.5·Ö
Ħ¶ûÖ®Áµ
ÄÏ·Ç¶Ô°× VideoZi
¶¹°ê:5.3·Ö
ÎÒÃǵķ­Òë¹Ù
ÄÏ·Ç¶Ô°× VideoZi
¶¹°ê:4.5·Ö
°ì¹«ÊÒÊ¥µ®ÅɶÔ
¹úÓï¶Ô°× VideoZi
¶¹°ê:4.3·Ö
Ã÷ÄÝÓëĪ˹¿ÆÍþ×È
º«Óï¶Ô°× VideoZi
¶¹°ê:8.5·Ö
»Øµ½°®×îÏȵĵط½
Ì©Óï¶Ô°× VideoZi
¶¹°ê:5.6·Ö
Éñ¾­·çÔÆ
ÆäËû VideoZi
¶¹°ê:7.5·Ö
ÔõÑù³ÉΪ´ó»µµ°
¹úÓï¶Ô°× VideoZi
¶¹°ê:7.3·Ö
CatchandKillThePodcastTapes
Ê×Ò³
Ó°Ï·
Ò»Á¬¾ç
×ÛÒÕ
¶¯Âþ
APP
ÍøÕ¾µØÍ¼