Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Modeler   Code  
»áÔ±   
 
   
 
 
     
   
 ¶©ÔÄ
  ¾èÖú
ʱ¼äÐòÁÐÊý¾Ý¿âµÄÃØÃÜ(¶þ)¡ª¡ªË÷Òý
 
×÷Õß: ÌÕÎÄ   À´Ô´: InfoQ   »ðÁú¹ûÈí¼þ  ·¢²¼ÓÚ 2015-9-01
  3019  次浏览      27
 

ÈçºÎ¿ìËÙ¼ìË÷£¿

ElasticsearchÊÇͨ¹ýLuceneµÄµ¹ÅÅË÷Òý¼¼ÊõʵÏֱȹØÏµÐÍÊý¾Ý¿â¸ü¿ìµÄ¹ýÂË¡£ÌرðÊÇËü¶Ô¶àÌõ¼þµÄ¹ýÂËÖ§³Ö·Ç³£ºÃ£¬±ÈÈçÄêÁäÔÚ18ºÍ30Ö®¼ä£¬ÐÔ±ðΪŮÐÔÕâÑùµÄ×éºÏ²éѯ¡£µ¹ÅÅË÷ÒýºÜ¶àµØ·½¶¼ÓнéÉÜ£¬µ«ÊÇÆä±È¹ØÏµÐÍÊý¾Ý¿âµÄb-treeË÷Òý¿ìÔÚÄÄÀµ½µ×Ϊʲô¿ìÄØ£¿

ÁýͳµÄÀ´Ëµ£¬b-treeË÷ÒýÊÇΪдÈëÓÅ»¯µÄË÷Òý½á¹¹¡£µ±ÎÒÃDz»ÐèÒªÖ§³Ö¿ìËٵĸüеÄʱºò£¬¿ÉÒÔÓÃÔ¤ÏÈÅÅÐòµÈ·½Ê½»»È¡¸üСµÄ´æ´¢¿Õ¼ä£¬¸ü¿ìµÄ¼ìË÷ËٶȵȺô¦£¬Æä´ú¼Û¾ÍÊǸüÐÂÂý¡£Òª½øÒ»²½ÉîÈëµÄ»¯£¬»¹ÊÇÒª¿´Ò»ÏÂLuceneµÄµ¹ÅÅË÷ÒýÊÇÔõô¹¹³ÉµÄ¡£

ÕâÀïÓкü¸¸ö¸ÅÄî¡£ÎÒÃÇÀ´¿´Ò»¸öʵ¼ÊµÄÀý×Ó£¬¼ÙÉèÓÐÈçϵÄÊý¾Ý£º

ÕâÀïÿһÐÐÊÇÒ»¸ödocument¡£Ã¿¸ödocument¶¼ÓÐÒ»¸ödocid¡£ÄÇô¸øÕâЩdocument½¨Á¢µÄµ¹ÅÅË÷Òý¾ÍÊÇ£º

¿ÉÒÔ¿´µ½£¬µ¹ÅÅË÷ÒýÊÇper fieldµÄ£¬Ò»¸ö×Ö¶ÎÓÉÒ»¸ö×Ô¼ºµÄµ¹ÅÅË÷Òý¡£18,20ÕâЩ½Ð×ö term£¬¶ø[1,3]¾ÍÊÇposting list¡£Posting list¾ÍÊÇÒ»¸öintµÄÊý×飬´æ´¢ÁËËùÓзûºÏij¸ötermµÄÎĵµid¡£ÄÇôʲôÊÇterm dictionary ºÍ term index£¿

¼ÙÉèÎÒÃÇÓкܶà¸öterm£¬±ÈÈ磺

Carla,Sara,Elin,Ada,Patty,Kate,Selena

Èç¹û°´ÕÕÕâÑùµÄ˳ÐòÅÅÁУ¬ÕÒ³öij¸öÌØ¶¨µÄtermÒ»¶¨ºÜÂý£¬ÒòΪtermûÓÐÅÅÐò£¬ÐèҪȫ²¿¹ýÂËÒ»±é²ÅÄÜÕÒ³öÌØ¶¨µÄterm¡£ÅÅÐòÖ®ºó¾Í±ä³ÉÁË£º

Ada,Carla,Elin,Kate,Patty,Sara,Selena

ÕâÑùÎÒÃÇ¿ÉÒÔÓöþ·Ö²éÕҵķ½Ê½£¬±ÈÈ«±éÀú¸ü¿ìµØÕÒ³öÄ¿±êµÄterm¡£Õâ¸ö¾ÍÊÇ term dictionary¡£ÓÐÁËterm dictionaryÖ®ºó£¬¿ÉÒÔÓà logN ´Î´ÅÅ̲éÕҵõ½Ä¿±ê¡£µ«ÊÇ´ÅÅ̵ÄËæ»ú¶Á²Ù×÷ÈÔÈ»ÊǷdz£°º¹óµÄ£¨Ò»´Îrandom access´ó¸ÅÐèÒª10msµÄʱ¼ä£©¡£ËùÒÔ¾¡Á¿ÉٵĶÁ´ÅÅÌ£¬ÓбØÒª°ÑһЩÊý¾Ý»º´æµ½ÄÚ´æÀï¡£µ«ÊÇÕû¸öterm dictionary±¾ÉíÓÖÌ«´óÁË£¬ÎÞ·¨ÍêÕûµØ·Åµ½ÄÚ´æÀï¡£ÓÚÊǾÍÓÐÁËterm index¡£term indexÓеãÏñÒ»±¾×ÖµäµÄ´óµÄÕÂ½Ú±í¡£±ÈÈ磺

A¿ªÍ·µÄterm ¡­¡­¡­¡­¡­. XxxÒ³
C¿ªÍ·µÄterm ¡­¡­¡­¡­¡­. XxxÒ³
E¿ªÍ·µÄterm ¡­¡­¡­¡­¡­. XxxÒ³

Èç¹ûËùÓеÄterm¶¼ÊÇÓ¢ÎÄ×Ö·ûµÄ»°£¬¿ÉÄÜÕâ¸öterm index¾ÍÕæµÄÊÇ26¸öÓ¢ÎÄ×Ö·û±í¹¹³ÉµÄÁË¡£µ«ÊÇʵ¼ÊµÄÇé¿öÊÇ£¬termδ±Ø¶¼ÊÇÓ¢ÎÄ×Ö·û£¬term¿ÉÒÔÊÇÈÎÒâµÄbyteÊý×é¡£¶øÇÒ26¸öÓ¢ÎÄ×Ö·ûҲδ±ØÊÇÿһ¸ö×Ö·û¶¼ÓоùµÈµÄterm£¬±ÈÈçx×Ö·û¿ªÍ·µÄterm¿ÉÄÜÒ»¸ö¶¼Ã»ÓУ¬¶øs¿ªÍ·µÄtermÓÖÌØ±ð¶à¡£Êµ¼ÊµÄterm indexÊÇÒ»¿Ãtrie Ê÷£º

Àý×ÓÊÇÒ»¸ö°üº¬ "A", "to", "tea", "ted", "ten", "i", "in", ºÍ "inn" µÄ trie Ê÷¡£Õâ¿ÃÊ÷²»»á°üº¬ËùÓеÄterm£¬Ëü°üº¬µÄÊÇtermµÄһЩǰ׺¡£Í¨¹ýterm index¿ÉÒÔ¿ìËٵض¨Î»µ½term dictionaryµÄij¸öoffset£¬È»ºó´ÓÕâ¸öλÖÃÔÙÍùºó˳Ðò²éÕÒ¡£ÔÙ¼ÓÉÏһЩѹËõ¼¼Êõ£¨ËÑË÷ Lucene Finite State Transducers£© term index µÄ³ß´ç¿ÉÒÔÖ»ÓÐËùÓÐtermµÄ³ß´çµÄ¼¸Ê®·ÖÖ®Ò»£¬Ê¹µÃÓÃÄڴ滺´æÕû¸öterm index±ä³É¿ÉÄÜ¡£ÕûÌåÉÏÀ´Ëµ¾ÍÊÇÕâÑùµÄЧ¹û¡£

ÏÖÔÚÎÒÃÇ¿ÉÒԻشð¡°ÎªÊ²Ã´Elasticsearch/Lucene¼ìË÷¿ÉÒÔ±Èmysql¿ìÁË¡£MysqlÖ»ÓÐterm dictionaryÕâÒ»²ã£¬ÊÇÒÔb-treeÅÅÐòµÄ·½Ê½´æ´¢ÔÚ´ÅÅÌÉϵġ£¼ìË÷Ò»¸ötermÐèÒªÈô¸É´ÎµÄrandom accessµÄ´ÅÅ̲Ù×÷¡£¶øLuceneÔÚterm dictionaryµÄ»ù´¡ÉÏÌí¼ÓÁËterm indexÀ´¼ÓËÙ¼ìË÷£¬term indexÒÔÊ÷µÄÐÎʽ»º´æÔÚÄÚ´æÖС£´Óterm index²éµ½¶ÔÓ¦µÄterm dictionaryµÄblockλÖÃÖ®ºó£¬ÔÙÈ¥´ÅÅÌÉÏÕÒterm£¬´ó´ó¼õÉÙÁË´ÅÅ̵Ärandom access´ÎÊý¡£

¶îÍâÖµµÃÒ»ÌáµÄÁ½µãÊÇ£ºterm indexÔÚÄÚ´æÖÐÊÇÒÔFST£¨finite state transducers£©µÄÐÎʽ±£´æµÄ£¬ÆäÌØµãÊǷdz£½ÚÊ¡ÄÚ´æ¡£Term dictionaryÔÚ´ÅÅÌÉÏÊÇÒÔ·ÖblockµÄ·½Ê½±£´æµÄ£¬Ò»¸öblockÄÚ²¿ÀûÓù«¹²Ç°×ºÑ¹Ëõ£¬±ÈÈç¶¼ÊÇAb¿ªÍ·µÄµ¥´Ê¾Í¿ÉÒÔ°ÑAbʡȥ¡£ÕâÑùterm dictionary¿ÉÒÔ±Èb-tree¸ü½ÚÔ¼´ÅÅ̿ռ䡣

ÈçºÎÁªºÏË÷Òý²éѯ£¿

ËùÒÔ¸ø¶¨²éѯ¹ýÂËÌõ¼þ age=18 µÄ¹ý³Ì¾ÍÊÇÏÈ´Óterm indexÕÒµ½18ÔÚterm dictionaryµÄ´ó¸ÅλÖã¬È»ºóÔÙ´Óterm dictionaryÀᆱȷµØÕÒµ½18Õâ¸öterm£¬È»ºóµÃµ½Ò»¸öposting list»òÕßÒ»¸öÖ¸Ïòposting listλÖõÄÖ¸Õ롣ȻºóÔÙ²éѯ gender=Å® µÄ¹ý³ÌÒ²ÊÇÀàËÆµÄ¡£×îºóµÃ³ö age=18 AND gender=Å® ¾ÍÊǰÑÁ½¸ö posting list ×öÒ»¸ö¡°Ó롱µÄºÏ²¢¡£

Õâ¸öÀíÂÛÉϵġ°Ó롱ºÏ²¢µÄ²Ù×÷¿É²»ÈÝÒס£¶ÔÓÚmysqlÀ´Ëµ£¬Èç¹ûÄã¸øageºÍgenderÁ½¸ö×ֶζ¼½¨Á¢ÁËË÷Òý£¬²éѯµÄʱºòÖ»»áÑ¡ÔñÆäÖÐ×îselectiveµÄÀ´Óã¬È»ºóÁíÍâÒ»¸öÌõ¼þÊÇÔÚ±éÀúÐеĹý³ÌÖÐÔÚÄÚ´æÖмÆËãÖ®ºó¹ýÂ˵ô¡£ÄÇôҪÈçºÎ²ÅÄÜÁªºÏʹÓÃÁ½¸öË÷ÒýÄØ£¿ÓÐÁ½ÖÖ°ì·¨£º

ʹÓÃskip listÊý¾Ý½á¹¹£¬Í¬Ê±±éÀúgenderºÍageµÄposting list£¬»¥Ïàskip£»

ʹÓÃbitsetÊý¾Ý½á¹¹£¬¶ÔgenderºÍageÁ½¸öfilter·Ö±ðÇó³öbitset£¬¶ÔÁ½¸öbitset×öAN²Ù×÷¡£

PostgreSQL ´Ó 8.4 °æ±¾¿ªÊ¼Ö§³Öͨ¹ýbitmapÁªºÏʹÓÃÁ½¸öË÷Òý£¬¾ÍÊÇÀûÓÃÁËbitsetÊý¾Ý½á¹¹À´×öµ½µÄ¡£µ±È»Ò»Ð©ÉÌÒµµÄ¹ØÏµÐÍÊý¾Ý¿âÒ²Ö§³ÖÀàËÆµÄÁªºÏË÷ÒýµÄ¹¦ÄÜ¡£ElasticsearchÖ§³ÖÒÔÉÏÁ½ÖÖµÄÁªºÏË÷Òý·½Ê½£¬Èç¹û²éѯµÄfilter»º´æµ½ÁËÄÚ´æÖУ¨ÒÔbitsetµÄÐÎʽ£©£¬ÄÇôºÏ²¢¾ÍÊÇÁ½¸öbitsetµÄAND¡£Èç¹û²éѯµÄfilterûÓлº´æ£¬ÄÇô¾ÍÓÃskip listµÄ·½Ê½È¥±éÀúÁ½¸öon diskµÄposting list¡£

ÀûÓÃSkip List ºÏ²¢

ÒÔÉÏÊÇÈý¸öposting list¡£ÎÒÃÇÏÖÔÚÐèÒª°ÑËüÃÇÓÃANDµÄ¹ØÏµºÏ²¢£¬µÃ³öposting listµÄ½»¼¯¡£Ê×ÏÈÑ¡Ôñ×î¶ÌµÄposting list£¬È»ºó´ÓСµ½´ó±éÀú¡£±éÀúµÄ¹ý³Ì¿ÉÒÔÌø¹ýÒ»Ð©ÔªËØ£¬±ÈÈçÎÒÃDZéÀúµ½ÂÌÉ«µÄ13µÄʱºò£¬¾Í¿ÉÒÔÌø¹ýÀ¶É«µÄ3ÁË£¬ÒòΪ3±È13ҪС¡£Õû¸ö¹ý³ÌÈçÏ£º

Next -> 2
Advance(2) -> 13
Advance(13) -> 13
Already on 13
Advance(13) -> 13 MATCH!!!
Next -> 17
Advance(17) -> 22
Advance(22) -> 98
Advance(98) -> 98
Advance(98) -> 98 MATCH!!!

×îºóµÃ³öµÄ½»¼¯ÊÇ[13,98]£¬ËùÐèµÄʱ¼ä±ÈÍêÕû±éÀúÈý¸öposting listÒª¿ìµÃ¶à¡£µ«ÊÇǰÌáÊÇÿ¸ölistÐèÒªÖ¸³öAdvanceÕâ¸ö²Ù×÷£¬¿ìËÙÒÆ¶¯Ö¸ÏòµÄλÖá£Ê²Ã´ÑùµÄlist¿ÉÒÔÕâÑùAdvanceÍùǰ×öÍÜÌø£¿skip list£º

´Ó¸ÅÄîÉÏÀ´Ëµ£¬¶ÔÓÚÒ»¸öºÜ³¤µÄposting list£¬±ÈÈ磺

[1,3,13,101,105,108,255,256,257]

ÎÒÃÇ¿ÉÒÔ°ÑÕâ¸ölist·Ö³ÉÈý¸öblock£º

[1,3,13] [101,105,108] [255,256,257]

È»ºó¿ÉÒÔ¹¹½¨³öskip listµÄµÚ¶þ²ã£º

[1,101,255]

1,101,255·Ö±ðÖ¸Ïò×Ô¼º¶ÔÓ¦µÄblock¡£ÕâÑù¾Í¿ÉÒÔºÜ¿ìµØ¿çblockµÄÒÆ¶¯Ö¸ÏòλÖÃÁË¡£

Lucene×ÔÈ»»á¶ÔÕâ¸öblockÔٴνøÐÐѹËõ¡£ÆäѹËõ·½Ê½½Ð×öFrame Of Reference±àÂ롣ʾÀýÈçÏ£º

¿¼Âǵ½Æµ·±³öÏÖµÄterm£¨Ëùνlow cardinalityµÄÖµ£©£¬±ÈÈçgenderÀïµÄÄлòÕßÅ®¡£Èç¹ûÓÐ1°ÙÍò¸öÎĵµ£¬ÄÇôÐÔ±ðΪÄеÄposting listÀï¾Í»áÓÐ50Íò¸öintÖµ¡£ÓÃFrame of Reference±àÂë½øÐÐѹËõ¿ÉÒÔ¼«´ó¼õÉÙ´ÅÅÌÕ¼Óá£Õâ¸öÓÅ»¯¶ÔÓÚ¼õÉÙË÷Òý³ß´çÓзdz£ÖØÒªµÄÒâÒå¡£µ±È»mysql b-treeÀïÒ²ÓÐÒ»¸öÀàËÆµÄposting listµÄ¶«Î÷£¬ÊÇδ¾­¹ýÕâÑùѹËõµÄ¡£

ÒòΪÕâ¸öFrame of ReferenceµÄ±àÂëÊÇÓнâѹËõ³É±¾µÄ¡£ÀûÓÃskip list£¬³ýÁËÌø¹ýÁ˱éÀúµÄ³É±¾£¬Ò²Ìø¹ýÁ˽âѹËõÕâЩѹËõ¹ýµÄblockµÄ¹ý³Ì£¬´Ó¶ø½ÚÊ¡ÁËcpu¡£

ÀûÓÃbitsetºÏ²¢

BitsetÊÇÒ»ÖÖºÜÖ±¹ÛµÄÊý¾Ý½á¹¹£¬¶ÔÓ¦posting listÈ磺

[1,3,4,7,10]

¶ÔÓ¦µÄbitset¾ÍÊÇ£º

[1,0,1,1,0,0,1,0,0,1]

ÿ¸öÎĵµ°´ÕÕÎĵµidÅÅÐò¶ÔÓ¦ÆäÖеÄÒ»¸öbit¡£Bitset×ÔÉí¾ÍÓÐѹËõµÄÌØµã£¬ÆäÓÃÒ»¸öbyte¾Í¿ÉÒÔ´ú±í8¸öÎĵµ¡£ËùÒÔ100Íò¸öÎĵµÖ»ÐèÒª12.5Íò¸öbyte¡£µ«ÊÇ¿¼Âǵ½Îĵµ¿ÉÄÜÓÐÊýÊ®ÒÚÖ®¶à£¬ÔÚÄÚ´æÀï±£´æbitsetÈÔÈ»ÊǺÜÉݳ޵ÄÊÂÇé¡£¶øÇÒ¶ÔÓÚ¸öÿһ¸öfilter¶¼ÒªÏûºÄÒ»¸öbitset£¬±ÈÈçage=18»º´æÆðÀ´µÄ»°ÊÇÒ»¸öbitset£¬18<=age<25ÊÇÁíÍâÒ»¸öfilter»º´æÆðÀ´Ò²ÒªÒ»¸öbitset¡£

ËùÒÔÃØ¾÷¾ÍÔÚÓÚÐèÒªÓÐÒ»¸öÊý¾Ý½á¹¹£º

  • ¿ÉÒÔºÜѹËõµØ±£´æÉÏÒÚ¸öbit´ú±í¶ÔÓ¦µÄÎĵµÊÇ·ñÆ¥Åäfilter£»
  • Õâ¸öѹËõµÄbitsetÈÔÈ»¿ÉÒÔºÜ¿ìµØ½øÐÐANDºÍ ORµÄÂß¼­²Ù×÷¡£

LuceneʹÓõÄÕâ¸öÊý¾Ý½á¹¹½Ð×ö Roaring Bitmap¡£

ÆäѹËõµÄ˼·ÆäʵºÜ¼òµ¥¡£ÓëÆä±£´æ100¸ö0£¬Õ¼ÓÃ100¸öbit¡£»¹²»Èç±£´æ0Ò»´Î£¬È»ºóÉùÃ÷Õâ¸ö0ÖØ¸´ÁË100±é¡£

ÕâÁ½Öֺϲ¢Ê¹ÓÃË÷ÒýµÄ·½Ê½¶¼ÓÐÆäÓÃ;¡£Elasticsearch¶ÔÆäÐÔÄÜÓÐÏêϸµÄ¶Ô±È£¨https://www.elastic.co/blog/frame-of-reference-and-roaring-bitmaps£©¡£¼òµ¥µÄ½áÂÛÊÇ£ºÒòΪFrame of Reference±àÂëÊÇÈç´Ë ¸ßЧ£¬¶ÔÓÚ¼òµ¥µÄÏàµÈÌõ¼þµÄ¹ýÂË»º´æ³É´¿ÄÚ´æµÄbitset»¹²»ÈçÐèÒª·ÃÎÊ´ÅÅ̵Äskip listµÄ·½Ê½Òª¿ì¡£

ÈçºÎ¼õÉÙÎĵµÊý£¿

Ò»ÖÖ³£¼ûµÄѹËõ´æ´¢Ê±¼äÐòÁеķ½Ê½ÊǰѶà¸öÊý¾ÝµãºÏ²¢³ÉÒ»ÐС£OpentsdbÖ§³Öº£Á¿Êý¾ÝµÄÒ»¸ö¾øÕоÍÊǶ¨ÆÚ°ÑºÜ¶àÐÐÊý¾ÝºÏ²¢³ÉÒ»ÐУ¬Õâ¸ö¹ý³Ì½Ðcompaction¡£ÀàËÆµÄvivdcortextʹÓÃmysql´æ´¢µÄʱºò£¬Ò²°ÑÒ»·ÖÖӵĺܶàÊý¾ÝµãºÏ²¢´æ´¢µ½mysqlµÄÒ»ÐÐÀïÒÔ¼õÉÙÐÐÊý¡£

Õâ¸ö¹ý³Ì¿ÉÒÔʾÀýÈçÏ£º

ºÏ²¢Ö®ºó¾Í±ä³ÉÁË£º

¿ÉÒÔ¿´µ½£¬Ðбä³ÉÁËÁÐÁË¡£Ã¿Ò»ÁпÉÒÔ´ú±íÕâÒ»·ÖÖÓÄÚÒ»ÃëµÄÊý¾Ý¡£

ElasticsearchÓÐÒ»¸ö¹¦ÄÜ¿ÉÒÔʵÏÖÀàËÆµÄÓÅ»¯Ð§¹û£¬ÄǾÍÊÇNested Document¡£ÎÒÃÇ¿ÉÒÔ°ÑÒ»¶Îʱ¼äµÄºÜ¶à¸öÊý¾Ýµã´ò°ü´æ´¢µ½Ò»¸ö¸¸ÎĵµÀ±ä³ÉÆäǶÌ×µÄ×ÓÎĵµ¡£Ê¾ÀýÈçÏ£º

{timestamp:12:05:01, idc:sz, value1:10,value2:11}
{timestamp:12:05:02, idc:sz, value1:9,value2:9}
{timestamp:12:05:02, idc:sz, value1:18,value:17}

¿ÉÒÔ´ò°ü³É£º

{max_timestamp:12:05:02, min_timestamp: 
1205:01, idc:sz,records: [
{timestamp:12:05:01, value1:10,value2:11}
{timestamp:12:05:02, value1:9,value2:9}
{timestamp:12:05:02, value1:18,value:17}]

ÕâÑù¿ÉÒÔ°ÑÊý¾Ýµã¹«¹²µÄά¶È×Ö¶ÎÉÏÒÆµ½¸¸ÎĵµÀ¶ø²»ÓÃÔÚÿ¸ö×ÓÎĵµÀïÖØ¸´´æ´¢£¬´Ó¶ø¼õÉÙË÷ÒýµÄ³ß´ç¡£

ÔÚ´æ´¢µÄʱºò£¬ÎÞÂÛ¸¸Îĵµ»¹ÊÇ×ÓÎĵµ£¬¶ÔÓÚLuceneÀ´Ëµ¶¼ÊÇÎĵµ£¬¶¼»áÓÐÎĵµId¡£µ«ÊǶÔÓÚǶÌ×ÎĵµÀ´Ëµ£¬¿ÉÒÔ±£´æÆð×ÓÎĵµºÍ¸¸ÎĵµµÄÎĵµidÊÇÁ¬ÐøµÄ£¬¶øÇÒ¸¸Îĵµ×ÜÊÇ×îºóÒ»¸ö¡£ÓÐÕâÑùÒ»¸öÅÅÐòÐÔ×÷Ϊ±£ÕÏ£¬ÄÇôÓÐÒ»¸öËùÓи¸ÎĵµµÄposting list¾Í¿ÉÒÔ¸ú×ÙËùÓеĸ¸×Ó¹ØÏµ¡£Ò²¿ÉÒÔºÜÈÝÒ×µØÔÚ¸¸×ÓÎĵµidÖ®¼ä×öת»»¡£°Ñ¸¸×Ó¹ØÏµÒ²Àí½âΪһ¸öfilter£¬ÄÇô²éѯʱ¼ìË÷µÄʱºò²»¹ýÊÇÓÖANDÁËÁíÍâÒ»¸öfilter¶øÒÑ¡£Ç°ÃæÎÒÃÇÒѾ­¿´µ½ÁËElasticsearch¿ÉÒԷdz£¸ßЧµØ´¦Àí¶àfilterµÄÇé¿ö£¬³ä·ÖÀûÓõײãµÄË÷Òý¡£

ʹÓÃÁËǶÌ×ÎĵµÖ®ºó£¬¶ÔÓÚtermµÄposting listÖ»ÐèÒª±£´æ¸¸ÎĵµµÄdoc id¾Í¿ÉÒÔÁË£¬¿ÉÒԱȱ£´æËùÓеÄÊý¾ÝµãµÄdoc idÒªÉٺܶࡣÈç¹ûÎÒÃÇ¿ÉÒÔÔÚÒ»¸ö¸¸ÎĵµÀïÈûÈë50¸öǶÌ×Îĵµ£¬ÄÇôposting list¿ÉÒÔ±ä³É֮ǰµÄ1/50¡£

   
3019 ´Îä¯ÀÀ       27
Ïà¹ØÎÄÕÂ

»ùÓÚEAµÄÊý¾Ý¿â½¨Ä£
Êý¾ÝÁ÷½¨Ä££¨EAÖ¸ÄÏ£©
¡°Êý¾Ýºþ¡±£º¸ÅÄî¡¢ÌØÕ÷¡¢¼Ü¹¹Óë°¸Àý
ÔÚÏßÉ̳ÇÊý¾Ý¿âϵͳÉè¼Æ ˼·+Ч¹û
 
Ïà¹ØÎĵµ

GreenplumÊý¾Ý¿â»ù´¡Åàѵ
MySQL5.1ÐÔÄÜÓÅ»¯·½°¸
ijµçÉÌÊý¾ÝÖÐ̨¼Ü¹¹Êµ¼ù
MySQL¸ßÀ©Õ¹¼Ü¹¹Éè¼Æ
Ïà¹Ø¿Î³Ì

Êý¾ÝÖÎÀí¡¢Êý¾Ý¼Ü¹¹¼°Êý¾Ý±ê×¼
MongoDBʵս¿Î³Ì
²¢·¢¡¢´óÈÝÁ¿¡¢¸ßÐÔÄÜÊý¾Ý¿âÉè¼ÆÓëÓÅ»¯
PostgreSQLÊý¾Ý¿âʵսÅàѵ
×îл¼Æ»®
DeepSeekÔÚÈí¼þ²âÊÔÓ¦ÓÃʵ¼ù 4-12[ÔÚÏß]
DeepSeek´óÄ£ÐÍÓ¦Óÿª·¢Êµ¼ù 4-19[ÔÚÏß]
UAF¼Ü¹¹ÌåϵÓëʵ¼ù 4-11[±±¾©]
AIÖÇÄÜ»¯Èí¼þ²âÊÔ·½·¨Óëʵ¼ù 5-23[ÉϺ£]
»ùÓÚ UML ºÍEA½øÐзÖÎöÉè¼Æ 4-26[±±¾©]
ÒµÎñ¼Ü¹¹Éè¼ÆÓ뽨ģ 4-18[±±¾©]

MySQLË÷Òý±³ºóµÄÊý¾Ý½á¹¹
MySQLÐÔÄܵ÷ÓÅÓë¼Ü¹¹Éè¼Æ
SQL ServerÊý¾Ý¿â±¸·ÝÓë»Ö¸´
ÈÃÊý¾Ý¿â·ÉÆðÀ´ 10´óDB2ÓÅ»¯
oracleµÄÁÙʱ±í¿Õ¼äдÂú´ÅÅÌ
Êý¾Ý¿âµÄ¿çƽ̨Éè¼Æ


²¢·¢¡¢´óÈÝÁ¿¡¢¸ßÐÔÄÜÊý¾Ý¿â
¸ß¼¶Êý¾Ý¿â¼Ü¹¹Éè¼ÆÊ¦
HadoopÔ­ÀíÓëʵ¼ù
Oracle Êý¾Ý²Ö¿â
Êý¾Ý²Ö¿âºÍÊý¾ÝÍÚ¾ò
OracleÊý¾Ý¿â¿ª·¢Óë¹ÜÀí


GE Çø¿éÁ´¼¼ÊõÓëʵÏÖÅàѵ
º½Ìì¿Æ¹¤Ä³×Ó¹«Ë¾ Nodejs¸ß¼¶Ó¦Óÿª·¢
ÖÐÊ¢Òæ»ª ׿Խ¹ÜÀíÕß±ØÐë¾ß±¸µÄÎåÏîÄÜÁ¦
ijÐÅÏ¢¼¼Êõ¹«Ë¾ PythonÅàѵ
ij²©²ÊITϵͳ³§ÉÌ Ò×ÓÃÐÔ²âÊÔÓëÆÀ¹À
ÖйúÓÊ´¢ÒøÐÐ ²âÊÔ³ÉÊì¶ÈÄ£Ðͼ¯³É(TMMI)
ÖÐÎïÔº ²úÆ·¾­ÀíÓë²úÆ·¹ÜÀí