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

1Ôª 10Ôª 50Ôª





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



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Modeler   Code  
»áÔ±   
 
   
 
 
     
   
 ¶©ÔÄ
  ¾èÖú
ʹÓà Apache Solr ʵÏÖ¸ü¼ÓÁéÇɵÄËÑË÷£¨ÉÏ£©
 
×÷ÕߣºGrant Ingersoll À´Ô´£ºIBM ·¢²¼ÓÚ 2016-1-8
  3145  次浏览      27
 

µÚ 1 ²¿·Ö: »ù±¾ÌØÐÔºÍ Solr ģʽ

ʹÓà Solr ½øÐÐË÷Òý¡¢ËÑË÷ºÍ²ãÃæä¯ÀÀ

Solr ÊÇÒ»Öֿɹ©ÆóҵʹÓõġ¢»ùÓÚ Lucene µÄËÑË÷·þÎñÆ÷£¬ËüÖ§³Ö²ãÃæËÑË÷¡¢ÃüÖÐÐÑÄ¿ÏÔʾºÍ¶àÖÖÊä³ö¸ñʽ¡£ÔÚÕâÆª·ÖÁ½²¿·ÖµÄÎÄÕÂÖУ¬Lucene Java? µÄÌá½»ÈË Grant Ingersoll ½«½éÉÜ Solr ²¢ÏòÄúչʾÈçºÎÇáËɵؽ«Æä±íÏÖÓÅÒìµÄÈ«Îı¾ËÑË÷¹¦ÄܼÓÈëµ½ Web Ó¦ÓóÌÐòÖС£

Ò»µ©Óû§ÐèҪijÖÖÐÅÏ¢£¬¾Í¿ÉÒÔÁ¢¼´ËÑË÷µ½ÕâЩÐÅÏ¢£¬ÕâÖÖÒªÇóÔÙÒ²²»ÊÇ¿ÉÓпÉÎÞµÄÁË¡£Ëæ×Å Google ºÍÀàËÆµÄ¸´ÔÓËÑË÷ÒýÇæµÄ³öÏÖ£¬Óû§Ï£ÍûµÃµ½¸ßÖÊÁ¿µÄËÑË÷½á¹û£¬°ïÖúËûÃÇ¿ìËÙ¡¢ÇáÒ×µØÕÒµ½ËùÐèµÄÐÅÏ¢¡£¾­Àí¶ÔÄúµÄÔÚÏß¹ºÎïÕ¾µãͬÑù±§ÓÐºÜ¸ßµÄÆÚÍû£¬ÒªÇóËüÄܹ»Ìṩһ¸ö¿ÉÉìËõ¡¢¸ß¶È¿ÉÓÃÇÒÒ×ÓÚά»¤µÄËÑË÷½â¾ö·½°¸£¬²¢ÇÒ°²×°Õâ¸ö½â¾ö·½°¸²»Ó¦Ì«°º¹ó¡£¶ÔÓÚÄú¶øÑÔ£¬Ö»ÊÇÏ£ÍûÊÂÒµ½ø²½£¬ÈÃÀϰåºÍ¿Í»§ÂúÒ⣬ÒÔ¼°±£³ÖÍ·ÄÔÇåÐÑ¡£
ʹÓà Apache Solr ¿ÉÒÔÂú×ãËùÓеÄÕâЩҪÇó£¬ËüÊÇÒ»ÖÖ¿ª·ÅÔ´ÂëµÄ¡¢»ùÓÚ Lucene Java µÄËÑË÷·þÎñÆ÷£¬Ò×ÓÚ¼ÓÈëµ½ Web Ó¦ÓóÌÐòÖС£Solr ÌṩÁ˲ãÃæËÑË÷¡¢ÃüÖÐÐÑÄ¿ÏÔʾ²¢ÇÒÖ§³Ö¶àÖÖÊä³ö¸ñʽ£¨°üÀ¨ XML/XSLT ºÍ JSON ¸ñʽ£©¡£ËüÒ×ÓÚ°²×°ºÍÅäÖ㬶øÇÒ¸½´øÁËÒ»¸ö»ùÓÚ HTTP µÄ¹ÜÀí½çÃæ¡£Äú¿ÉÒÔ¼á³ÖʹÓà Solr µÄ±íÏÖÓÅÒìµÄ»ù±¾ËÑË÷¹¦ÄÜ£¬Ò²¿ÉÒÔ¶ÔËü½øÐÐÀ©Õ¹´Ó¶øÂú×ãÆóÒµµÄÐèÒª¡£Solr »¹ÓµÓÐÒ»¸ö»îÔ¾µÄ¿ª·¢ÕßȺÌ壬ÈçÓÐÐèÒª£¬Äú¿ÉÒÔËæÊ±ÏòËûÃÇѰÇó°ïÖú¡£

ÕâÆª·ÖΪÁ½²¿·ÖµÄÎÄÕ½«½éÉÜ Solr£¬Õ¹Ê¾ÆäÌØÐÔ²¢¾ÙÀý˵Ã÷ÈçºÎ½«ÆäÍêÈ«¼ÓÈëµ½ Web Ó¦ÓóÌÐòÖС£ ÎÒÃǽ«Ê×ÏÈÌṩһЩ Solr µÄ»ù±¾½éÉÜ£¬°üÀ¨°²×°ºÍÅäÖõÄ˵Ã÷¡£È»ºóÒýÈëÒ»¸öʾÀýÓ¦ÓóÌÐò£¨²©¿Í½çÃæ£©£¬Äú¿ÉÒÔͨ¹ý¸Ã³ÌÐòÈÃ×Ô¼ºÊìϤһÏ Solr µÄ¸÷ÖÖÌØÐÔ¡£Äú½«Ñ§Ï°ÈçºÎʹÓà Solr À´Ë÷ÒýºÍËÑË÷ÄÚÈݲ¢Ì½Ë÷ Solr ¶Ô²ãÃæä¯ÀÀµÄÖ§³Ö¡£µÚ 1 ²¿·ÖµÄ×îºó½«¼òÒª½éÉÜһϠSolr µÄģʽ²¢½âÊÍÈçºÎÕë¶ÔʾÀýÓ¦ÓóÌÐòµÄË÷Òý½á¹¹ÅäÖÃģʽ¡£

Solr µÄÀúÊ·

Solr ×î³õÓÉ CNET Networks ¿ª·¢£¬2006 Äê³õ£¬Apache Software Foundation ÔÚ Lucene ¶¥¼¶ÏîÄ¿µÄÖ§³Öϵõ½ÁË Solr¡£Solr ÓÚ 2007 Äê 1 ÔÂÔÍÄð³ÉÊ죬ÔÚÕû¸öÏîÄ¿·õ»¯ÆÚ¼ä£¬Solr ÎȲ½µØ»ýÀÛ¸÷ÖÖÌØÐÔ²¢ÎüÒýÁËÒ»¸öÎȶ¨µÄÓû§ÈºÌå¡¢¹±Ï×ÕߺÍÌá½»ÈË¡£Solr ÏÖÔÚÊÇ Lucene£¨Apache µÄ»ùÓÚ Java µÄÈ«Îı¾ËÑË÷ÒýÇæ¿â£©µÄÒ»¸ö×ÓÏîÄ¿¡£

°²×°ºÍÅäÖÃ

Òª¿ªÊ¼Ê¹Óà Solr£¬Ðè°²×°ÒÔÏÂÈí¼þ£º

Java 1.5 »ò¸ü¸ß°æ±¾¡£

Ant 1.6.x »ò¸ü¸ß°æ±¾¡£

Web ä¯ÀÀÆ÷£¬ÓÃÀ´²é¿´¹ÜÀíÒ³Ãæ¡£½¨ÒéʹÓà Firefox£»Ïà±ÈÖ®ÏÂʹÓà Internet Explorer ¿ÉÄÜÒª¸´ÔÓЩ¡£

servlet ÈÝÆ÷£¬Èç Tomcat 5.5¡£±¾ÎÄÖеÄʾÀý¼Ù¶¨ÄúµÄ Tomcat ÔÚ 8080 ¶Ë¿ÚÉÏÔËÐУ¬ÕâÊÇ Tomcat µÄĬÈÏÉèÖá£Èç¹ûÔËÐеÄÊÇÆäËû servlet ÈÝÆ÷»òÔÚÆäËûµÄ¶Ë¿ÚÉÏÔËÐУ¬Ôò¿ÉÄÜÒªÐ޸ĸø³öµÄ URL ²ÅÄÜ·ÃÎÊʾÀýÓ¦ÓóÌÐòºÍ Solr¡£ÎÒÒѾ­¼Ù¶¨Ê¾ÀýÓ¦ÓóÌÐòµÄ¸÷¸ö²¿·Ö¶¼ÔËÐÐÔÚ Tomcat µÄ±¾µØÖ÷»úÉÏ¡£ÁíÍ⻹ҪעÒâ Solr ÒÔ´ò°üµÄ·½Ê½Óë Jetty Ò»ÆðÌṩ¡£

ÒªÏÂÔØºÍ°²×°ËùÓÐÕâЩӦÓóÌÐò£¬Çë²ÎÔÄ ²Î¿¼×ÊÁÏ¡£

ÉèÖÃ Solr

Ò»µ©´î½¨ºÃÔËÐл·¾³£¬¾Í¿ÉÒÔ´Ó Apache Mirrors Web Õ¾µã ÏÂÔØ Solr 1.1 °æ¡£½ÓÏÂÀ´£¬Ö´ÐÐÒÔϲÙ×÷£º

Í£Ö¹ servlet ÈÝÆ÷¡£

ÔÚÃüÁîÐÐÑ¡ÔñÏ£ÍûÔÚÆäÖÐÖ´ÐвÙ×÷µÄĿ¼£¬´ÓÖÐÊäÈë mkdir dw-solr¡£

ÊäÈë cd dw-solr¡£

½« Solr ÏÂÔØ°æ±¾¸´ÖƵ½µ±Ç°Ä¿Â¼Öв¢½âѹËõ¡£ ¼´¿ÉµÃµ½ apache-solr-1.1.0-incubating Ŀ¼¡£²»ÓÃ×¢Òâ incubating ±ê¼Ç£»Solr ÔçÒÑ·õ»¯³ÉÊì¡£

½« Solr WAR Îļþ¸´ÖƵ½ servlet ÈÝÆ÷µÄ webapps Ŀ¼ÖС£

ÏÂÔØÊ¾ÀýÓ¦ÓóÌÐò£¬½«Æä¸´ÖƵ½µ±Ç°Ä¿Â¼£¬È»ºó½âѹËõ£¬¼´¿ÉÔÚµ±Ç°¹¤×÷Ŀ¼Öеõ½Ò»¸ö solr Ŀ¼¡£±¾ÎĽ«Ò»Ö±°ÑËüÓÃ×÷ Solr µÄÖ÷Ŀ¼¡£
¿ÉÒÔͨ¹ýÒÔÏÂÈýÖÖ·½Ê½Ö®Ò»ÉèÖà Solr µÄÖ÷λÖãº

ÉèÖà java ϵͳÊôÐÔ solr.solr.home £¨Ã»´í£¬¾ÍÊÇ solr.solr.home£©¡£

ÅäÖà java:comp/env/solr/home µÄÒ»¸ö JNDI ²éÕÒÖ¸Ïò solr Ŀ¼¡£

ÔÚ°üº¬ solr Ŀ¼µÄĿ¼ÖÐÆô¶¯ servlet ÈÝÆ÷¡££¨Ä¬È쵀 Solr Ö÷Ŀ¼Êǵ±Ç°¹¤×÷Ŀ¼Ï嵀 solr¡££©

½«Ê¾Àý WAR Îļþ£¨Î»ÓÚ dw-solr/solr/dist/dw.war ÖУ©¸´ÖƵ½ servlet ÈÝÆ÷µÄ webapps Ŀ¼ÖУ¬·½·¨Óë¸´ÖÆ Solr WAR ÎļþÏàͬ¡£WAR ÎļþµÄ Java µÄ´úÂëλÓÚ dw-solr/solr/src/java ÖУ¬¶ø JSP ºÍÆäËû Web ÎļþλÓÚ dw-solr/solr/src/webapp ÖС£

ÒªÑéÖ¤ËùÓгÌÐò¶¼Õý³£ÔËÐУ¬ÇëÆô¶¯ servlet ÈÝÆ÷²¢½«ä¯ÀÀÆ÷Ö¸Ïò http://localhost:8080/solr/admin/¡£Èç¹ûÒ»ÇÐ˳Àû£¬ÄúÓ¦¸Ã¿´µ½ÀàËÆÍ¼ 1 ËùʾµÄÒ³Ãæ¡£Èç¹ûûÓгöÏÖ¹ÜÀíÒ³Ãæ£¬²é¿´ÈÝÆ÷ÈÕÖ¾ÖеĴíÎóÏûÏ¢¡£ÁíÍ⣬ȷ±£´Ó dw-solr Ŀ¼Æô¶¯ servlet ÈÝÆ÷£¬ÒÔ±ã¿ÉÒÔÕýÈ·µØÉèÖà Solr µÄÖ÷λÖá£

¹ØÓÚ Lucene

ÒªÁ˽â Solr ¾Í±ØÐëÊìϤ Lucene¡£ Lucene ÊÇÒ»¸ö»ùÓÚ Java µÄ¸ßÐÔÄÜÎı¾ËÑË÷ÒýÇæ¿â£¬×î³õÓÉ Doug Cutting ±àд£¬ºóÀ´±»¾èÔù¸ø Apache Software Foundation¡£ºÜ¶àÓ¦ÓóÌÐò¶¼ÀûÓà Lucene À´ÔöÇ¿×ÔÉíµÄËÑË÷¹¦ÄÜ£¬ÒòΪ Lucene ¸ßËÙ¡¢Ò×Óú;ßÓлîÔ¾ÉçÇøµÄÌØµã¡£Solr ¹¹½¨ÔÚÕâЩ¹¦ÄÜÖ®ÉÏ£¬Ê¹ Lucene ¿É¹©ÆóҵʹÓ㬲¢¾ßÓÐ×îСµÄ±à³ÌÐèÇó¡£ÓÐ¹Ø Lucene µÄ¸ü¶àÐÅÏ¢£¬Çë²Î¼û ²Î¿¼×ÊÁÏ¡£

ͼ 1. Ò»¸ö Solr ¹ÜÀíÆÁĻʾÀý

Solr »ù´¡

ÒòΪ Solr °ü×°²¢À©Õ¹ÁË Lucene£¬ËùÒÔËüÃÇʹÓúܶàÏàͬµÄÊõÓï¡£¸üÖØÒªµÄÊÇ£¬Solr ´´½¨µÄË÷ÒýÓë Lucene ËÑË÷ÒýÇæ¿âÍêÈ«¼æÈÝ¡£Í¨¹ý¶Ô Solr ½øÐÐÊʵ±µÄÅäÖã¬Ä³Ð©Çé¿öÏ¿ÉÄÜÐèÒª½øÐбàÂ룬Solr ¿ÉÒÔÔĶÁºÍʹÓù¹½¨µ½ÆäËû Lucene Ó¦ÓóÌÐòÖеÄË÷Òý¡£´ËÍ⣬ºÜ¶à Lucene ¹¤¾ß£¨Èç Luke£©Ò²¿ÉÒÔʹÓà Solr ´´½¨µÄË÷Òý¡£

ÔÚ Solr ºÍ Lucene ÖУ¬Ê¹ÓÃÒ»¸ö»ò¶à¸ö Document À´¹¹½¨Ë÷Òý¡£Document °üÀ¨Ò»¸ö»ò¶à¸ö Field¡£Field °üÀ¨Ãû³Æ¡¢ÄÚÈÝÒÔ¼°¸æËß Solr ÈçºÎ´¦ÀíÄÚÈݵÄÔªÊý¾Ý¡£ÀýÈ磬Field ¿ÉÒÔ°üº¬×Ö·û´®¡¢Êý×Ö¡¢²¼¶ûÖµ»òÕßÈÕÆÚ£¬Ò²¿ÉÒÔ°üº¬ÄúÏëÌí¼ÓµÄÈκÎÀàÐÍ¡£Field ¿ÉÒÔʹÓôóÁ¿µÄÑ¡ÏîÀ´ÃèÊö£¬ÕâЩѡÏî¸æËß Solr ÔÚË÷ÒýºÍËÑË÷ÆÚ¼äÈçºÎ´¦ÀíÄÚÈÝ¡£ÎÒ½«ÔÚ±¾ÎÄÖÐÉÔºóÏêϸÌÖÂÛÕâЩѡÏî¡£ÏÖÔÚ£¬²é¿´Ò»Ï±í 1 ÖÐÁгöµÄÖØÒªÊôÐÔµÄ×Ó¼¯£º

±í 1. ×Ö¶ÎÊôÐÔ

Solr µÄ·ÖÎö¹ý³Ì

Äú¿ÉÒÔÔÚ¶ÔÓ¦ÓóÌÐòÄÚÈÝË÷Òý֮ǰÔËÐÐ Solr µÄ·ÖÎö¹ý³ÌÀ´ÐÞ¸ÄÕâЩÄÚÈÝ¡£ÔÚ Solr ºÍ Lucene ÖУ¬Analyzer °üÀ¨Ò»¸ö Tokenizer ºÍÒ»¸ö»ò¶à¸ö TokenFilter¡£Tokenizer ¸ºÔð Éú³É Token£¬ºóÕßÔÚ¶àÊýÇé¿ö϶ÔÓ¦ÒªË÷ÒýµÄ´Ê¡£TokenFilter ´Ó Tokenizer ½ÓÊÜ Token ²¢ÇÒ¿ÉÒÔÔÚË÷Òý֮ǰÐ޸Ļòɾ³ý Token¡£ ÀýÈ磬Solr µÄ WhitespaceTokenizer ¸ù¾Ý¿Õ°×¶Ï´Ê£¬¶øËüµÄ StopFilter ´ÓËÑË÷½á¹ûÖÐɾ³ý¹«¹²´Ê¡£ÆäËûÀàÐ͵ķÖÎö°üÀ¨´Ê¸ÉÌáÈ¡¡¢Í¬Òå´ÊÀ©Õ¹ºÍ´óСдÕÛµþ¡£Èç¹ûÓ¦ÓóÌÐòÒªÇóÒÔijÖÖÌØÊⷽʽ½øÐзÖÎö£¬Ôò Solr ËùÓµÓеÄÒ»¸ö»ò¶à¸ö¶Ï´Ê¹¤¾ßºÍɸѡÆ÷¿ÉÒÔÂú×ãÄúµÄÒªÇó¡£

Äú»¹¿ÉÒÔÔÚËÑË÷²Ù×÷ÆÚ¼ä¶Ô²éѯӦÓ÷ÖÎö¡£Ò»¸ö×ÜÌ广ÔòÊÇ£ºÓ¦¸Ã¶Ô²éѯºÍÒªË÷ÒýµÄÎĵµÔËÐÐÏàͬµÄ·ÖÎö¡£²»ÊìϤÕâЩ¸ÅÄîµÄÓû§³£·¸µÄÒ»¸ö´íÎó¾ÍÊÇ£º¶ÔÎĵµ±ê¼Ç½øÐдʸÉÌáÈ¡£¬µ«²»¶Ô²éѯ±ê¼Ç½øÐдʸÉÌáÈ¡£¬Í¨³£µ¼ÖÂÁãËÑË÷Æ¥Åä¡£Solr µÄ XML ÅäÖÃʹËü¿ÉÒÔÇáÒ×µØÊ¹Óüòµ¥ÉùÃ÷´´½¨ Analyzer£¬±¾ÎÄÉÔºó»á¶Ô´Ë×÷³öչʾ¡£

ÓÐ¹Ø Solr ºÍ Lucene µÄ·ÖÎö¹¤¾ß£¬ÒÔ¼°Ë÷Òý½á¹¹ºÍÆäËû¹¦Äܵĸü¶àÐÅÏ¢£¬Çë²ÎÔÄ ²Î¿¼×ÊÁÏ¡£

ʾÀýÓ¦ÓóÌÐò

ÒÔϸ÷½Ú½«Ê¹ÓÃʵ¼ÊµÄʾÀýÓ¦ÓóÌÐòÏòÄú½éÉÜ Solr µÄ¹¦ÄÜ¡£¸ÃʾÀýÓ¦ÓóÌÐòÊÇÒ»¸ö»ùÓÚ Web µÄ²©¿Í½çÃæ£¬Äú¿ÉÒÔʹÓÃËüÀ´¼Ç¼ÌõÄ¿¡¢¸øÌõĿָÅÉÔªÊý¾Ý£¬È»ºóË÷ÒýºÍËÑË÷ÌõÄ¿¡£ÔÚË÷ÒýºÍËÑË÷¹ý³ÌµÄÿһ²½£¬Äú¶¼¿ÉÒÔÑ¡ÔñÏÔʾ·¢Ë͵½ Solr µÄÃüÁî¡£

Òª²é¿´Ê¾ÀýÓ¦ÓóÌÐò£¬Ç뽫ä¯ÀÀÆ÷Ö¸Ïò http://localhost:8080/dw/index.jsp¡£Èç¹ûÒ»ÇÐÉèÖÃÕýÈ·£¨Èç ¡°ÉèÖà Solr¡± ÃèÊöµÄÄÇÑù£©£¬ÔòÄú¿ÉÒÔ¿´µ½Ò»¸öÌâΪ ¡°Sample Solr Blog Search¡± µÄ¼òµ¥Óû§½çÃæ£¬ÔÚ±êÌâµÄÕýÏ·½ÓÐһЩ²Ëµ¥Ïî¡£µ±Äúä¯ÀÀ±¾ÎĵÄÁ½¸ö²¿·Öʱ£¬½«»áÁ˽⵽²Ëµ¥ÖеÄËùÓÐÖ÷Ìâ¡£

Ë÷Òý²Ù×÷

ÔÚ Solr ÖУ¬Í¨¹ýÏò²¿ÊðÔÚ servlet ÈÝÆ÷ÖÐµÄ Solr Web Ó¦ÓóÌÐò·¢ËÍ HTTP ÇëÇóÀ´Æô¶¯Ë÷ÒýºÍËÑË÷¡£Solr ½ÓÊÜÇëÇó£¬È·¶¨ÒªÊ¹ÓõÄÊʵ± SolrRequestHandler£¬È»ºó´¦ÀíÇëÇó¡£Í¨¹ý HTTP ÒÔͬÑùµÄ·½Ê½·µ»ØÏìÓ¦¡£Ä¬ÈÏÅäÖ÷µ»Ø Solr µÄ±ê×¼ XML ÏìÓ¦¡£ÄúÒ²¿ÉÒÔÅäÖà Solr µÄ±¸ÓÃÏìÓ¦¸ñʽ¡£ÎÒ½«ÔÚ±¾ÎÄµÄµÚ 2 ²¿·ÖÏòÄúչʾÈçºÎ¶¨ÖÆÇëÇóºÍÏìÓ¦´¦Àí¡£

Ë÷Òý¾ÍÊǽÓÊÜÊäÈ루±¾ÀýÖÐÊDz©¿ÍÌõÄ¿¡¢¹Ø¼ü×ÖºÍÆäËûÔªÊý¾Ý£©²¢½«ËüÃÇ´«µÝ¸ø Solr£¬´Ó¶øÔÚ HTTP Post XML ÏûÏ¢ÖнøÐÐË÷ÒýµÄ¹ý³Ì¡£Äú¿ÉÒÔÏò Solr Ë÷Òý servlet ´«µÝËĸö²»Í¬µÄË÷ÒýÇëÇó£º

add/update ÔÊÐíÄúÏò Solr Ìí¼ÓÎĵµ»ò¸üÐÂÎĵµ¡£Ö±µ½Ìá½»ºó²ÅÄÜËÑË÷µ½ÕâЩÌí¼ÓºÍ¸üС£

commit ¸æËß Solr£¬Ó¦¸ÃʹÉÏ´ÎÌá½»ÒÔÀ´Ëù×öµÄËùÓиü¸Ä¶¼¿ÉÒÔËÑË÷µ½¡£

optimize ÖØ¹¹ Lucene µÄÎļþÒԸĽøËÑË÷ÐÔÄÜ¡£Ë÷ÒýÍê³ÉºóÖ´ÐÐÒ»ÏÂÓÅ»¯Í¨³£±È½ÏºÃ¡£Èç¹û¸üÐÂ±È½ÏÆµ·±£¬ÔòÓ¦¸ÃÔÚʹÓÃÂʽϵ͵Äʱºò°²ÅÅÓÅ»¯¡£Ò»¸öË÷ÒýÎÞÐèÓÅ»¯Ò²¿ÉÒÔÕý³£µØÔËÐС£ÓÅ»¯ÊÇÒ»¸öºÄʱ½Ï¶àµÄ¹ý³Ì¡£

delete ¿ÉÒÔͨ¹ý id »ò²éѯÀ´Ö¸¶¨¡£°´ id ɾ³ý½«É¾³ý¾ßÓÐÖ¸¶¨ id µÄÎĵµ£»°´²éѯɾ³ý½«É¾³ý²éѯ·µ»ØµÄËùÓÐÎĵµ¡£

Ò»¸öË÷ÒýʾÀý

ä¯ÀÀµ½ http://localhost:8080/dw/index.jsp ¿ÉÒԲ鿴Ë÷Òý¹ý³ÌµÄ¸ü¶àϸ½Ú¡£Ê×ÏÈΪ±íµ¥ÖеÄÿ¸ö×Ö¶ÎÌîÈëÊʵ±µÄÌõÄ¿²¢°´ Submit °´Å¥¡£Ê¾ÀýÓ¦ÓóÌÐò½ÓÊÜÌõÄ¿¡¢´´½¨ Solr ÇëÇó²¢ÏÔʾÇëÇóÒÔ±ãÔÚÏÂÒ»¸öÆÁÄ»Éϲ鿴¡£Çåµ¥ 1 °üº¬ÁËÒ»¸ö add ÃüÁîµÄÀý×Ó£¬µ±Äú°´Ï Submit °´Å¥Ê±Ïò Solr ·¢ËÍÕâ¸öÃüÁî¡£

Çåµ¥ 1. Solr add ÃüÁîÑùÀý

<add>
<doc>
<field name="url">http://localhost/myBlog/solr-rocks.html</field>
<field name="title">Solr Search is Simply Great</field>
<field name="keywords">solr,lucene,enterprise,search</field>
<field name="creationDate">2007-01-06T05:04:00.000Z</field>
<field name="rating">10</field>
<field name="content">Solr is a really great open source search server. It scales,
it's easy to configure and the Solr community is really supportive.</field>
<field name="published">on</field>
</doc>
</add>

Çåµ¥ 1 µÄ <doc> ÖеÄÿ¸ö field ÌõÄ¿¸æËß Solr Ó¦¸Ã½«ÄÄЩ Field Ìí¼Óµ½Ëù´´½¨ÎĵµµÄ Lucene Ë÷ÒýÖС£¿ÉÒÔÏò add ÃüÁîÌí¼Ó¶à¸ö <doc>¡£ÉÔºóÎÒ½«½âÊÍ Solr ÈçºÎ´¦ÀíÕâЩ field¡£ÏÖÔÚ£¬ÖªµÀ°üº¬Çåµ¥ 1 ÖÐÖ¸¶¨µÄÆß¸ö field µÄÎĵµ½«»á±»Ë÷Òý¾Í×ã¹»ÁË¡£

µ±ÄúÔÚ ¡°Solr XML Command¡± Ò³ÃæÌá½»ÃüÁîʱ£¬½á¹û½«·¢Íù Solr ½øÐд¦Àí¡£HTTP POST ½«ÃüÁî·¢ÍùÔÚ http://localhost:8080/solr/update ÔËÐÐµÄ Solr Update Servlet¡£Èç¹ûÒ»ÇнøÕ¹Ë³Àû£¬Ôò»áËæ <result status="0"/> ·µ»ØÒ»¸ö XML Îĵµ¡£Solr ʹÓÃÏàͬµÄ URL ×Ô¶¯¸üÐÂÎĵµ£¨Ê¾ÀýÓ¦ÓóÌÐòÖÐµÄ URL ÊÇ Solr ʶ±ðÎĵµÒÔǰÊÇ·ñ±»Ìí¼Ó¹ýËùʹÓõÄΩһ id£©¡£

ʵ¼ùË÷Òý

ÏÖÔÚÔÙÌí¼Ó¼¸¸öÎĵµ²¢Ìá½»ÕâЩÎĵµ£¬ÒÔ±ãÔÚÏÂÒ»½ÚÖÐÓÐÎĵµ¿É¹©ËÑË÷¡£Ò»µ©ÄúÊìϤ add ÃüÁîµÄÓï·¨ºó£¬¾Í¿ÉÒÔÈ¡ÏûÑ¡Ôñ Index °´Å¥ÅÔ±ßµÄ ¡°Display XML...¡± ¸´Ñ¡¿ò£¬Ìø¹ý ¡°Solr XML Command¡± Ò³Ãæ¡£±¾Îĸ½´øµÄ ÑùÀýÎļþ °üº¬ÁËÒ»¸öºÜ¶àÕâЩʾÀýÖÐʹÓõÄË÷Òý°æ±¾¡£

Äú¿ÉÒÔͨ¹ýÔÚ http://localhost:8080/dw/delete.jsp Ò³ÃæÊäÈëÎĵµµÄ URL¡¢Ìá½»²¢²é¿´ÃüÁȻºó½«ÃüÁîÌá½»µ½ Solr À´É¾³ýÎĵµ¡£ÓйØË÷ÒýºÍɾ³ýÃüÁîµÄ¸ü¶àÐÅÏ¢£¬Çë²ÎÔÄ ²Î¿¼×ÊÁÏ ÖÐµÄ ¡°Solr Wiki¡± ²Î¿¼¡£

¹ØÓÚ²éѯÓï·¨µÄÒ»µã×¢Òâ

ÓÃÓÚ StandardRequestHandler µÄ Solr ²éѯÓï·¨Óë Lucene QueryParser Ö§³ÖµÄ²éѯÓï·¨Ïàͬ£¬Ö»ÊÇǰÕß¼ÓÈëÁËһЩÅÅÐòÖ§³Ö¡£Ê¾ÀýÓ¦ÓóÌÐò¶ÔÊäÈëµÄÖµ¼¸ºõûÓнøÐÐÑéÖ¤£¬¶øÇÒûÓÐÑÝʾÈç²éѯÔöÇ¿¡¢¶ÌÓï¡¢·¶Î§É¸Ñ¡µÈ¹¦ÄÜ£¬ËùÓÐÕâЩ¹¦ÄÜÔÚ Solr ºÍ Lucene Öж¼ÓÐЧ¡£ÓÐ¹Ø Lucene QueryParser µÄ¸ü¶àÐÅÏ¢£¬Çë²ÎÔÄ ²Î¿¼×ÊÁÏ¡£ÔÚ±¾ÎÄµÄµÚ 2 ²¿·Ö£¬ÎÒ½«½éÉܹÜÀí½çÃæÖеÄһЩÓÐÖúÓÚµ÷ÊÔ²éѯÓï·¨ºÍ½á¹ûµÄ¹¤¾ß¡£

ËÑË÷ÃüÁî

Ìí¼ÓÎĵµºó£¬¾Í¿ÉÒÔËÑË÷ÕâЩÎĵµÁË¡£Solr ½ÓÊÜ HTTP GET ºÍ HTTP POST ²éѯÏûÏ¢¡£ÊÕµ½µÄ²éѯÓÉÏàÓ¦µÄ SolrRequestHandler ½øÐд¦Àí¡£³öÓÚ±¾ÎĵÄÌÖÂÛÄ¿µÄ£¬ÎÒÃǽ«Ê¹ÓÃĬÈ쵀 StandardRequestHandler¡£ÔÚ±¾ÎÄµÄµÚ 2 ²¿·Ö£¬ÎÒ½«ÏòÄúչʾÈçºÎΪÆäËûµÄ SolrRequestHandler ÅäÖà Solr¡£

Òª²é¿´ËÑË÷ÔËÐУ¬·µ»Øµ½Ê¾ÀýÓ¦ÓóÌÐò²¢ä¯ÀÀµ½ http://localhost:8080/dw/searching.jsp¡£´ËÆÁĻӦ¸ÃÓëË÷ÒýÆÁÄ»·Ç³£ÀàËÆ£¬Ö»ÊÇÔö¼ÓÁ˼¸¸öËÑË÷Ïà¹ØµÄÑ¡Ïî¡£ÓëË÷ÒýÀàËÆ£¬¿ÉÒÔÏò¸÷ÖÖÊäÈë×Ö¶ÎÖÐÊäÈëÖµ£¬Ñ¡ÔñËÑË÷²ÎÊý²¢½«²éѯÌá½»¸øÊ¾ÀýÓ¦ÓóÌÐò¡£Ê¾ÀýÓ¦ÓóÌÐòÐÑÄ¿ÏÔʾÁËһЩ Solr Öиü³£¼ûµÄ²éѯ²ÎÊý¡£ÕâЩ²ÎÊýÈçÏÂËùʾ£º

²¼¶ûÔËËã·û£ºÄ¬ÈÏÇé¿öÏ£¬ÓÃÓںϲ¢ËÑË÷ÌõÄ¿µÄ²¼¶ûÔËËã·ûÊÇ OR¡£½«ËüÉèΪ AND ÒªÇóÆ¥ÅäµÄÎĵµÖгöÏÖËùÓеÄÌõÄ¿¡£

½á¹ûÊýÄ¿£ºÖ¸¶¨·µ»ØµÄ×î´ó½á¹ûÊýÄ¿¡£

¿ªÊ¼£º½á¹û¼¯ÖпªÊ¼µÄÆ«ÒÆÁ¿¡£´Ë²ÎÊý¿ÉÓÃÓÚ·ÖÒ³¡£

ÐÑÄ¿ÏÔʾ£ºÐÑÄ¿ÏÔʾƥÅäÎĵµ×ֶεÄÌõÄ¿¡£²Î¿¼ Çåµ¥ 2 µ×²¿µÄ <lst> ½Úµã¡£ÐÑÄ¿ÏÔʾµÄÌõÄ¿±ê¼ÇΪ <em>¡£

Ò»µ©ÊäÈëºÍÌá½»Öµºó£¬²©¿ÍÓ¦ÓóÌÐò¾Í·µ»ØÒ»¸ö¿ÉÒÔÁ¢¼´Ìá½»¸ø Solr µÄ²éѯ×Ö·û´®¡£Ìá½»×Ö·û´®ºó£¬Èç¹ûÒ»ÇÐÕý³£²¢ÇÒ´æÔÚÆ¥ÅäÎĵµ£¬Ôò Solr ·µ»ØÒ»¸ö XML ÏìÓ¦£¬ÆäÖаüº¬Á˽á¹û¡¢ÐÑÄ¿ÏÔʾµÄÐÅÏ¢ºÍһЩÓйزéѯµÄÔªÊý¾Ý¡£Çåµ¥ 2 ¸ø³öÁËÒ»¸öʾÀýËÑË÷½á¹û£º

Çåµ¥ 2. ËÑË÷½á¹ûʾÀý

<response>
<lst name="responseHeader">
<int name="status">0</int>
<int name="QTime">6</int>
<lst name="params">
<str name="rows">10</str>
<str name="start">0</str>
<str name="fl">*,score</str>
<str name="hl">true</str>
<str name="q">content:"faceted browsing"</str>
</lst>
</lst>
<result name="response" numFound="1" start="0" maxScore="1.058217">
<doc>
<float name="score">1.058217</float>
<arr name="all">
<str>http://localhost/myBlog/solr-rocks-again.html</str>
<str>Solr is Great</str>
<str>solr,lucene,enterprise,search,greatness</str>
<str>Solr has some really great features, like faceted browsing
and replication</str>
</arr>
<arr name="content">
<str>Solr has some really great features, like faceted browsing
and replication</str>
</arr>
<date name="creationDate">2007-01-07T05:04:00.000Z</date>
<arr name="keywords">
<str>solr,lucene,enterprise,search,greatness</str>
</arr>
<int name="rating">8</int>
<str name="title">Solr is Great</str>
<str name="url">http://localhost/myBlog/solr-rocks-again.html</str>
</doc>
</result>
<lst name="highlighting">
<lst name="http://localhost/myBlog/solr-rocks-again.html">
<arr name="content">
<str>Solr has some really great features, like <em>faceted</em>
<em>browsing</em> and replication</str>
</arr>
</lst>
</lst>
</response>

Ò»Ìõ²éѯÏûÏ¢¿ÉÒÔ°üº¬´óÁ¿µÄ²ÎÊý£¬±í 2 ÖжÔÐÑÄ¿ÏÔʾµÄÄÇЩ²ÎÊý½øÐÐÁËÃèÊö¡£²ÎÔÄ ²Î¿¼×ÊÁÏ ÖÐµÄ ¡°Solr Wiki¡± ²Î¿¼¿ÉÒԲ鿴²ÎÊýµÄÍêÕûÇåµ¥¡£

±í 2. ÐÑÄ¿ÏÔʾµÄ²éѯ²ÎÊý

²ãÃæä¯ÀÀ

×î½ü£¬ËƺõËùÓÐÁ÷ÐеĹºÎïÕ¾µã¶¼Ìí¼ÓÁ˱ãÀûµÄÌõ¼þÁÐ±í£¬°ïÖúÓû§¸ù¾ÝÖÆÔìÉÌ¡¢¼Û¸ñºÍ×÷ÕßËõСËÑË÷½á¹ûµÄ·¶Î§¡£ÕâЩÁбíÊDzãÃæä¯ÀÀµÄ½á¹û£¬²ãÃæä¯ÀÀÊÇÒ»ÖÖ·ÖÀ෽ʽ£¬ÓÃÓÚ¶ÔÒѾ­·µ»Øµ½ÓÐÒâÒåµÄ¡¢ÒÑ֤ʵ´æÔÚµÄÖÖÀàµÄ½á¹û½øÐзÖÀà¡£²ãÃæÓÃÓÚ°ïÖúÓû§ËõСËÑË÷½á¹ûµÄ·¶Î§¡£

ͨ¹ýä¯ÀÀµ½ http://localhost:8080/dw/facets.jsp ¿ÉÒԲ鿴²ãÃæµÄÔËÐС£ÔÚÕâ¸öÒ³ÃæÉÏ£¬ÄúÐèÒª¹Ø×¢Á½ÖÖÊäÈëÐÎʽ£º

Ò»¸öÎı¾ÇøÓò£¬Äú¿ÉÒÔÔÚÆäÖÐÊäÈë²éѯ£¬¸ù¾ÝË÷ÒýÖÐµÄ all ×ֶη¢²¼´Ë²éѯ¡£½« all ×ֶο´×÷Ò»Á¬´®ÒÑË÷ÒýµÄËùÓÐÆäËû×ֶΡ££¨ÉԺ󽫶ԴË×÷Ïêϸ½éÉÜ¡££©

Ò»¸ö¿ÉÒÔÓÃÓÚ·Ö²ãÃæµÄ×Ö¶ÎÏÂÀ­ÁÐ±í¡£´Ë´¦²¢Î´ÁгöËùÓеÄÒÑË÷Òý×ֶΣ¬ÆäÔ­ÒòÂíÉϾͻáµÃµ½½âÊÍ¡£

ÊäÈëÒ»¸ö²éѯ²¢´ÓÏÂÀ­ÁбíÖÐÑ¡ÔñÒ»¸ö²ãÃæ×ֶΣ¬È»ºóµ¥»÷ Submit ÓëÉú³ÉµÄ²éѯһÆð´«µÝ¸ø Solr¡£²©¿ÍÓ¦ÓóÌÐò½âÎö½á¹û²¢·µ»ØÀàËÆÍ¼ 2 ÖеĽá¹û£º

ͼ 2. ²ãÃæä¯ÀÀ½á¹ûʾÀý

²ãÃæä¯ÀÀ½á¹ûʾÀýµÄÆÁÄ»½ØÍ¼¡£

ÔÚͼ 2 ÖУ¬Äú¿ÉÒÔÔÚ¶¥²¿¿´¼ûËùÓзÇÁãÖµµÄ²ãÃæ¼ÆÊý£¬µ×²¿ÔòÊÇÆ¥ÅäËùÌá½»²éѯµÄÁ½¸öËÑË÷½á¹û¡£µ¥»÷ʾÀýÖеIJãÃæÁ´½ÓÌύԭʼ²éѯ£¬ÁíÍ⽫ Facet ¹Ø¼ü×Ö×÷Ϊһ¸öйؼü×Ö¡£Èç¹ûԭʼ²éѯÊÇ q=Solr ¶ø²ãÃæ×Ö¶ÎÊÇ keywords£¬²¢ÇÒµ¥»÷ͼ 2 ÖÐµÄ replication Á´½Ó£¬Ôòвéѯ½«»áÊÇ q=Solr AND keywords:replication¡£

ÔËÐвãÃæ²»ÐèÒª´ò¿ªËü»òÔÚ Solr ÖнøÐÐÅäÖ㬵«ÊÇ¿ÉÄÜÐèÒª°´ÕÕеķ½Ê½¶ÔÓ¦ÓóÌÐòÄÚÈݽøÐÐË÷Òý¡£ÔÚÒÑË÷ÒýµÄ×Ö¶ÎÖÐÍê³É·Ö²ã£¬²ãÃæ¶Ôδ½øÐжϴʵķÇСд´Ê×îΪÓÐЧ¡££¨Òò´ËÎÒ²¢Î´°üº¬ content ×ֶλò Facet Field ÏÂÀ­ÁбíÖÐÌí¼Óµ½ÎĵµµÄÆäËû×ֶΡ££©Facet ×Ö¶Îͨ³£²»ÐèÒª´æ´¢£¬ÒòΪ·Ö²ãÃæµÄ×ÜÌå˼Ïë¾ÍÊÇÏÔʾÈËÀà¿É¶ÁµÄÖµ¡£

ÁíÍ⻹ҪעÒâ Solr ûÓÐÔÚ²ãÃæÖд´½¨Àà±ð£»±ØÐëÓÉÓ¦ÓóÌÐò×ÔÉíÔÚË÷ÒýÆÚ¼ä½øÐÐÌí¼Ó£¬ÕýÈçÔÚË÷ÒýÓ¦ÓóÌÐòʱ¸øÎĵµÖ¸Åɹؼü×ÖÒ»Ñù¡£Èç¹û´æÔÚ²ãÃæ×ֶΣ¬Solr ¾ÍÌṩÁ˲éÃ÷ÕâЩ²ãÃæ¼°Æä¼ÆÊýµÄÂß¼­¡£

Solr ģʽ

Æù½ñΪֹ£¬ÎÒÒÑÏòÄú½éÉÜÁË Solr µÄÌØÐÔ£¬µ«Ã»ÓÐʵ¼Ê½âÊÍÈçºÎÅäÖÃÕâÐ©ÌØÐÔ¡£±¾ÎĵÄÊ£Óಿ·ÖÖ÷Òª½éÉÜÅäÖã¬Ê×ÏȽéÉÜ Solr ģʽ£¨schema.xml£©È»ºóÏòÄúչʾËüÈçºÎÓë Solr µÄÌØÐÔÏà¹ØÁª¡£

Ôڱ༭Æ÷ÖУ¬×îºÃÊÇÖ§³Ö XML ±ê¼ÇÐÑÄ¿ÏÔʾµÄ±à¼­Æ÷£¬´ò¿ªÎ»ÓÚ <INSTALL_DIR>/dw-solr/solr/conf ÖÐµÄ schema.xml Îļþ¡£Ê×ÏÈҪעÒâµÄÊÇ´óÁ¿µÄ×¢ÊÍ¡£Èç¹ûÄúÒÔǰʹÓùý¿ª·ÅÔ´ÂëµÄÈí¼þ£¬Äú½«»áΪģʽÎļþÖеÄÎĵµ¼°Õû¸ö Solr ÖеÄÎĵµÐÀϲ²»ÒÑ¡£ÒòΪ schema.xml µÄ×¢Êͷdz£È«Ã棬ËùÒÔÎÒÖ÷Òª½éÉÜÎļþµÄһЩ¹Ø¼üÊôÐÔ£¬¾ßÌåϸ½Ú¿É²éÔÄÎĵµ¡£Ê×ÏÈ£¬×¢Òâ <schema> ±ê¼ÇÖÐģʽ£¨dw-solr£©µÄÃû³Æ¡£Solr Ϊÿ¸ö²¿ÊðÖ§³ÖÒ»¸öģʽ¡£½«À´Ëü¿ÉÄÜÖ§³Ö¶à¸öģʽ£¬µ«ÊÇĿǰֻÔÊÐíʹÓÃÒ»¸öģʽ¡££¨²ÎÔÄ ²Î¿¼×ÊÁÏ ÖÐµÄ ¡°Solr Wiki¡± ²Î¿¼£¬Á˽âÈçºÎ¼òµ¥µØÅäÖà Tomcat ºÍÆäËûÈÝÆ÷£¬ÒÔ±ãΪÿ¸öÈÝÆ÷ʹÓöà¸ö²¿Êð¡££©

ģʽ¿ÉÒÔ×é֯ΪÈý²¿·Ö£º

ÀàÐÍ

×Ö¶Î

ÆäËûÉùÃ÷

<types> ²¿·ÖÊÇһЩ³£¼ûµÄ¿ÉÖØÓö¨Ò壬¶¨ÒåÁË Solr£¨ºÍ Lucene£©ÈçºÎ´¦Àí Field¡£ÔÚʾÀýģʽÖУ¬ÓÐ 13 ¸ö×Ö¶ÎÀàÐÍ£¬°´Ãû³Æ´Ó string µ½ text¡£<types> ²¿·Ö¶¥²¿ÉùÃ÷µÄ×Ö¶ÎÀàÐÍ£¨Èç sint ºÍ boolean£©ÓÃÓÚ´æ´¢ Solr ÖеÄԭʼÀàÐÍ¡£Ôںܴó³Ì¶ÈÉÏ£¬Lucene Ö»´¦Àí×Ö·û´®£¬Òò´ËÐèÒª¶ÔÕûÐÍ¡¢¸¡µãÐÍ¡¢ÈÕÆÚÐͺÍË«¾«¶ÈÐͽøÐÐÌØÊâ´¦Àí²ÅÄÜÓÃÓÚËÑË÷¡£Ê¹ÓÃÕâЩ×Ö¶ÎÀàÐͻᾯ¸æ Solr ʹÓÃÊʵ±µÄÌØÊâ´¦ÀíË÷ÒýÄÚÈÝ£¬²»ÐèÒªÈËΪ¸ÉÉæ¡£

ÀàÐÍ

±¾ÎÄÇ°ÃæµÄÄÚÈÝÖУ¬ÎÒ¼òÒª½éÉÜÁË Solr µÄ·ÖÎö¹ý³ÌµÄ»ù´¡¡£×Ðϸ¹Û²ìһϠtext ×Ö¶ÎÀàÐÍÉùÃ÷£¬Äú¿ÉÒÔ¿´¼û Solr ¹ÜÀí·ÖÎöµÄϸ½Ú¡£Çåµ¥ 3 ¸ø³öÁË text ×Ö¶ÎÀàÐÍÉùÃ÷£º

Çåµ¥ 3. Îı¾×Ö¶ÎÀàÐÍÉù

<fieldtype name="text" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt"/>
<filter class="solr.WordDelimiterFilterFactory" generateWordParts="1"
generateNumberParts="1" catenateWords="1"
catenateNumbers="1" catenateAll="0"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.EnglishPorterFilterFactory"
protected="protwords.txt"/>
<filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt"
ignoreCase="true" expand="true"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt"/>
<filter class="solr.WordDelimiterFilterFactory" generateWordParts="1"
generateNumberParts="1" catenateWords="0"
catenateNumbers="0" catenateAll="0"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.EnglishPorterFilterFactory" protected="protwords.txt"/>
<filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
</analyzer>
</fieldtype>

ÀàÊôÐÔ

ÔÚ Solr ģʽÖеĺܶàʵÀýÖУ¬ÀàÊôÐÔ¼ò»¯ÎªÀàËÆ solr.TextField µÄÑù×Ó¡£ ÕâÊÇ org.apache.solr.schema.TextField µÄ¼òÂÔ±í´ïÐÎʽ¡£ÔÚ±¾ÎÄµÄµÚ 2 ²¿·ÖÖÐÄú½«¿´µ½£¬Àà·¾¶ÖÐÀ©Õ¹ org.apache.solr.schema.FieldType ÀàµÄÈκÎÓÐЧÀà¶¼¿ÉÄÜʹÓõ½¡£

Ê×ÏÈ£¬×¢ÒâÎÒÔÚÇåµ¥ 3 ÖÐÉùÃ÷ÁËÁ½¸ö²»Í¬µÄ Analyzer¡£ËäÈ» Analyzer ¶ÔÓÚË÷ÒýºÍËÑË÷²¢·ÇÍêÈ«Ïàͬ£¬µ«ÊÇËüÃÇÖ»ÊÇÔÚ²éѯ·ÖÎöÆÚ¼äµÄͬÒå´ÊÌí¼Ó·½ÃæÓÐËù²î±ð¡£´Ê¸ÉÌáÈ¡¡¢Í£Ö¹´Êɾ³ýÒÔ¼°ÏàËÆµÄ²Ù×÷¶¼±»Ó¦ÓÃÓÚ±ê¼Ç£¬È»ºó²Å½øÐÐË÷ÒýºÍËÑË÷£¬µ¼ÖÂʹÓÃÏàͬÀàÐ͵ıê¼Ç¡£½ÓÏÂÀ´£¬×¢ÒâÎÒÊ×ÏÈÉùÃ÷¶Ï´Ê¹¤¾ß£¬È»ºóÉùÃ÷ʹÓõÄɸѡÆ÷¡£Ê¾ÀýÓ¦ÓóÌÐòµÄ Solr ÅäÖð´ÒÔϲ½Öè½øÐÐÉèÖãº

¸ù¾Ý¿Õ°×½øÐжϴʣ¬È»ºóɾ³ýËùÓеĹ«¹²´Ê£¨StopFilterFactory£©
ʹ

ÆÆÕۺŴ¦ÀíÌØÊâµÄ´óСд¡¢´óСдת»»µÈµÈ¡££¨WordDelimiterFilterFactory£©£»½«ËùÓÐÌõÄ¿´¦ÀíΪСд£¨LowerCaseFilterFactory£©

ʹÓà Porter Stemming Ëã·¨½øÐдʸÉÌáÈ¡ £¨EnglishPorterFilterFactory£©

ɾ³ýËùÓеĸ±±¾£¨RemoveDuplicatesTokenFilterFactory£©

ʾÀý·ÖÎö¼ÓÈëÁ˺ܶàÓÃÓڸĽøËÑË÷½á¹ûµÄ³£¼û·½·¨£¬µ«²»Ó¦±»¿´×÷·ÖÎöÎı¾µÄΩһ·½Ê½¡£Ã¿¸öÓ¦ÓóÌÐò¶¼¿ÉÄÜÓÐһЩ×Ô¼ºµÄ·ÖÎöÐèÇó£¬Õâ¸öʾÀý»òÕßÉõÖÁÊÇ Solr »ò Lucene ÖеÄÈκÎÏÖÓÐ Analyzer ¶¼¿ÉÄÜûÓÐÉæ¼°ÏàÓ¦ÐèÇó¡£Çë²ÎÔÄ ²Î¿¼×ÊÁÏ ÖÐµÄ ¡°More Info On Solr Analysis¡±£¬ÁË½â¹ØÓÚ·ÖÎöµÄ¸ü¶àÑ¡ÏîÒÔ¼°ÈçºÎʹÓÃÆäËû Analyzer µÄÐÅÏ¢¡£

×Ö¶Î

¼ÌÐø½éÉÜģʽµÄ <fields> ²¿·Ö£¬²é¿´ Solr ÈçºÎ´¦ÀíË÷ÒýºÍËÑË÷ÆÚ¼äʹÓÃµÄ 8 ¸ö£¨Êµ¼ÊÉÏÊÇ 7 ¸ö£¬Íâ¼ÓÒ»¸ö all£©×ֶΡ£Çåµ¥ 4 ÖÐÖØ¸´ÁËÕâЩ×ֶΣº

Çåµ¥ 4. ²©¿ÍÓ¦ÓóÌÐòµÄÉùÃ÷×Ö¶Î

<field name="url" type="string" indexed="true" stored="true"/>
<field name="title" type="text" indexed="true" stored="true"/>
<field name="keywords" type="text_ws" indexed="true" stored="true"
multiValued="true" omitNorms="true"/>
<field name="creationDate" type="date" indexed="true" stored="true"/>
<field name="rating" type="sint" indexed="true" stored="true"/>

<field name="published" type="boolean" indexed="true" stored="true"/>

<field name="content" type="text" indexed="true" stored="true" />
<!-- catchall field,
containing many of the other searchable text fields
(implemented via copyField further on in this schema) -->
<field name="all" type="text" indexed="true" stored="true" multiValued="true"/>

Àí½â×Ö¶ÎÀàÐͺó£¬Äú¿ÉÒÔÇåÎúµØ¿´¼ûÈçºÎ´¦Àíÿ¸ö×ֶΡ£ÀýÈ磬url ×Ö¶ÎÊÇÒ»¸ö¾­¹ýË÷Òý¡¢´æ´¢ºÍδ¾­·ÖÎöµÄ string ×ֶΡ£ ͬʱ£¬Ê¹Óà Çåµ¥ 3 ÖÐÉùÃ÷µÄ Analyzer À´·ÖÎö text ×ֶΡ£all ×Ö¶ÎÈçºÎ´¦Àí£¿all ×Ö¶ÎÊÇÒ»¸ö text ×ֶΣ¬Èç title »ò content Ò»Ñù£¬µ«ÊÇËü°üº¬ÁËÁ¬½ÓÔÚÒ»ÆðµÄ¼¸¸ö×ֶεÄÄÚÈÝ£¬±ãÓÚʹÓñ¸ÓÃËÑË÷»úÖÆ£¨¼Çס²ãÃæËÑË÷ʹÓõÄÊÇ all ×ֶΣ©¡£

¶ÔÓÚ×ֶεÄÊôÐÔ£¬ÔÚ ±í 1 ÖÐÄúÒѾ­Á˽âÁË indexed ºÍ stored µÄÒâÒå¡£multiValued ÊôÐÔÊÇÒ»¸öÌØÊâµÄÀý×Ó£¬Ö¸ Document ¿ÉÒÔÓµÓÐÒ»¸öÏàͬÃû³ÆÌí¼ÓÁ˶à´ÎµÄ Field¡£±ÈÈçÔÚÎÒÃǵÄʾÀýÖУ¬¿ÉÒÔ¶à´ÎÌí¼Ó keywords¡£omitNorms ÊôÐÔ¸æËß Solr£¨ºÍ Lucene£©²»Òª´æ´¢¹æ·¶¡£Ê¡ÂԹ淶¶ÔÓÚ½ÚÊ¡²»Ó°Ïì¼Ç·ÖµÄ Field µÄÄÚ´æ·Ç³£ÓÐÓ㬱ÈÈçÄÇЩÓÃÓÚ¼ÆËã²ãÃæµÄ×ֶΡ£

ÔÚ½áÊø <fields> ²¿·Ö֮ǰ£¬¼òÒª½éÉÜÒ»ÏÂ×Ö¶ÎÉùÃ÷Ï·½µÄ <dynamicField> ÉùÃ÷¡£¶¯Ì¬×Ö¶ÎÊÇÒ»Ð©ÌØÊâÀàÐ͵Ä×ֶΣ¬¿ÉÒÔÔÚÈκÎʱºò½«ÕâЩ×Ö¶ÎÌí¼Óµ½ÈκÎÎĵµÖУ¬ÓÉ×Ö¶ÎÉùÃ÷¶¨ÒåËüÃǵÄÊôÐÔ¡£¶¯Ì¬×Ö¶ÎºÍÆÕͨ×Ö¶ÎÖ®¼äµÄ¹Ø¼üÇø±ðÔÚÓÚǰÕß²»ÐèÒªÔÚ schema.xml ÖÐÌáǰÉùÃ÷Ãû³Æ¡£Solr ½«Ãû³ÆÉùÃ÷ÖÐµÄ glob-like ģʽӦÓõ½ËùÓÐÉÐδÉùÃ÷µÄÒýÈëµÄ×Ö¶ÎÃû³Æ£¬²¢¸ù¾ÝÆä <dynamicField> ÉùÃ÷¶¨ÒåµÄÓïÒåÀ´´¦Àí×ֶΡ£ÀýÈ磬<dynamicField name="*_i" type="sint" indexed="true" stored="true"/> Ö¸Ò»¸ö myRating_i ×ֶα» Solr ´¦ÀíΪ sint£¬¾¡¹Ü²¢Î´½«ÆäÉùÃ÷Ϊ×ֶΡ£ÕâÖÖ´¦Àí±È½Ï·½±ã£¬ÀýÈ磬µ±ÐèÒªÓû§¶¨Òå´ýËÑË÷ÄÚÈݵÄʱºò¡£

ÆäËûÉùÃ÷

×îºó£¬schema.xml ÎļþµÄ×îºó²¿·Ö°üº¬ÁË×ֶκͲéѯÏà¹ØµÄ¸÷ÖÖÉùÃ÷¡£×îÖØÒªµÄÉùÃ÷ÊÇ <uniqueKey>url</uniqueKey>¡£¸ÃÉùÃ÷ÓÃÓÚ¸æËß Solr ÏÈǰÉùÃ÷µÄ url ×Ö¶ÎÊÇÓÃÓÚÈ·¶¨ºÎʱÌí¼Ó»ò¸üÐÂÎĵµµÄΩһ±êʶ·û¡£defaultSearchField ÊDzéѯÌõĿûÓÐǰ׺ÈκÎ×Ö¶Îʱ Solr ÔÚ²éѯÖÐʹÓÃµÄ Field¡£Ê¾ÀýËùʹÓõIJéѯÓë q=title:Solr ÀàËÆ¡£Èç¹ûÄúÊäÈë q=Solr£¬ÔòÓ¦ÓÃĬÈÏËÑË÷×ֶΡ£ ×îÖÕ½á¹ûÓë q=all:Solr Ïàͬ£¬ÒòΪ all ÊDz©¿ÍÓ¦ÓóÌÐòÖеÄĬÈÏËÑË÷×ֶΡ£

<copyField> »úÖÆÈÃÄúÄܹ»´´½¨ all ×ֶζøÎÞÐ轫ÎĵµµÄËùÓÐÄÚÈÝÊÖ¹¤Ìí¼Óµ½µ¥¶ÀµÄ×ֶΡ£¸´ÖÆ×Ö¶ÎÊÇÒÔ¶àÖÖ·½Ê½Ë÷ÒýÏàͬÄÚÈݵļò±ã·½·¨¡£ÀýÈ磬Èç¹ûÄúÏ£ÍûÌá¹©Çø·Ö´óСдµÄ¾«È·Æ¥ÅäºÍºöÂÔ´óСдµÄÆ¥Å䣬Ôò¿ÉÒÔʹÓÃÒ»¸ö¸´ÖÆ×Ö¶Î×Ô¶¯·ÖÎöÊÕµ½µÄÄÚÈÝ¡£È»ºóÑϸñ°´ÕÕÊÕµ½µÄÄÚÈݽøÐÐË÷Òý£¨ËùÓеÄ×ÖĸʹÓÃСд£©¡£

ÏÂÒ»²½£ºÓÃÓÚÆóÒµµÄ Solr

ĿǰΪֹ£¬ÄúÒѾ­°²×°ÁË Solr ²¢Ñ§Ï°ÁËÈçºÎʹÓÃËüÔÚʾÀýÓ¦ÓóÌÐòÖÐË÷ÒýºÍËÑË÷Îĵµ¡£ÄúÒ²Á˽âÁË Solr ÖвãÃæä¯ÀÀÈçºÎ¹¤×÷£¬²¢Ñ§Ï°ÁËÈçºÎʹÓà Solr µÄ schema.xml ÎļþÉùÃ÷Ë÷Òý½á¹¹¡£±¾Îĸ½´øµÄ ʾÀýÓ¦ÓóÌÐò ÑÝʾÁËÕâЩ¹¦ÄܺͽéÉÜÁËÈçºÎΪ Solr ¸ñʽ»¯ÃüÁî¡£

ÔÚÎÄÕÂµÄµÚ 2 ²¿·Ö£¬ÎÒ½«»á½éÉÜÒ»Ð©ÌØÐÔ£¬ËüÃǽ« Solr ´ÓÒ»¸ö¼òµ¥µÄËÑË÷½çÃæÀ©Õ¹³ÉÒ»¸ö¿É¹©ÆóҵʹÓõÄËÑË÷½â¾ö·½°¸¡£Äú½«Ñ§Ï° Solr µÄ¹ÜÀí½çÃæºÍ¸ß¼¶ÅäÖÃÑ¡ÏÒÔ¼°ÐÔÄÜÏà¹ØµÄÌØÐÔ£¨È绺´æ¡¢¸´ÖƺÍÈÕÖ¾¼Ç¼£©¡£ÎÒ»¹½«¼òÒªÌÖÂÛÀ©Õ¹ Solr ÒÔÂú×ãÆóÒµÐèÇóµÄһЩ·½·¨¡£Í¬Ê±£¬³ä·ÖÀûÓÃʾÀýÓ¦ÓóÌÐò£¬°ïÖú×Ô¼ºÊìϤ Solr µÄ»ù±¾¹¦ÄÜ¡£

µÚ 2 ²¿·Ö: ÓÃÓÚÆóÒµµÄ Solr

¹ÜÀí¡¢ÅäÖúÍÐÔÄÜ

ÔÚ±¾²¿·ÖÖУ¬Lucene Java? µÄÌá½»ÈË Grant Ingersoll ͨ¹ý¶ÔÓÃÓÚÆóÒµµÄÌØÐÔ£¨°üÀ¨¹ÜÀí½çÃæ¡¢¸ß¼¶ÅäÖÃÑ¡ÏÒÔ¼°ÓëÐÔÄÜÏà¹ØµÄÌØÐÔ£¨±ÈÈ绺´æ¡¢¸´ÖƺÍÈÕÖ¾¼Ç¼£©µÄ̽¾¿£¬Íê³ÉÁË¶Ô Solr µÄ½éÉÜ¡£

ÅäÖú͹ÜÀí

±¾²¿·Ö½éÉÜÁË¿ÉÓÃÓÚ¼àÊӺͿØÖÆ Solr ¹¦ÄÜÐÔµÄÖî¶àÑ¡ÏÊ×ÏÈÀ´¿´¿´ Solr µÄ Administration Start Page£¬¸ÃÒ³¿ÉÔÚ http://localhost:8080/solr/admin/ ÕÒµ½¡£Ò»µ©ÕÒµ½ÁËÆðʼҳ£¬ÔÚ¼ÌÐøÖ®Ç°£¬ÇëÎñ±Ø»¨Ð©Ê±¼äÊìϤһÏÂÉÏÃæµÄ¸÷Öֲ˵¥Ñ¡Ïî¡£ÔÚÆðʼҳÖУ¬¸ù¾ÝÕâЩѡÏîËùÌṩµÄÐÅÏ¢µÄ²»Í¬¶ÔËüÃǽøÐÐÁË·Ö×飺

Solr ¸ø³öÁËÓйØÕâÖֻģʽ£¨Çë²Î¼û µÚ 1 ²¿·Ö£©¡¢ÅäÖÃÒÔ¼°µ±Ç°²¿ÊðµÄͳ¼ÆÊý¾ÝµÄÏêϸÐÅÏ¢¡£

App server ¸ø³öÁËÈÝÆ÷µÄµ±Ç°×´Ì¬£¬°üÀ¨ threading ÐÅÏ¢ÒÔ¼°ËùÓÐ Java ϵͳÊôÐÔµÄÁÐ±í¡£

Make a Query ÌṩÁ˵÷ÊÔ²éѯËùÐèµÄ¿ì½Ý½çÃæÒÔ¼°µ½¹¦Äܸü¼ÓÈ«ÃæµÄ²éѯ½çÃæµÄÁ´½Ó¡£

Assistance ÌṩÁ˵½Íⲿ×ÊÔ´µÄÓÐÓÃÁ´½ÓÒÔ±ãÀí½âºÍ½â¾öʹÓà Solv ¿ÉÄÜÓöµ½µÄһЩÎÊÌâ¡£

ÈçϵÄÕ½ÚÏêϸ½éÉÜÁËÕâЩ²Ëµ¥Ñ¡Ïî²¢ÖØµãÍ»³öÁËÆäÖеĹÜÀíÌØÐÔ¡£

ҪʹÓà Solr µÄÅäÖÃÑ¡Ï¿ÉÒÔµ¥»÷³õʼҳÉ쵀 CONFIG Á´½Ó£¬Õâ»áÏÔʾµ±Ç°µÄ solrconfig.xml Îļþ¡£Äú¿ÉÒÔÔÚ Ê¾ÀýÓ¦ÓóÌÐò µÄ dw-solr/solr/conf Ŀ¼ÕÒµ½¸ÃÎļþ¡£ÏÖÔÚ£¬ÈÃÎÒÃÇÏÈÀ´¿´¿´ÓëË÷ÒýºÍ²éѯ´¦ÀíÓйصÄһЩ³£¼ûµÄÅäÖÃÑ¡Ï¶øÓë »º´æ¡¢¸´ÖÆ ºÍ À©Õ¹ Solr ÓйصÄÅäÖÃÑ¡ÏîÔòÁôµ½ºóÃæµÄÕ½ÚÔÙ½éÉÜ¡£

Ë÷ÒýÅäÖÃ

mainIndex ±ê¼Ç¶Î¶¨ÒåÁË¿ØÖÆ Solr Ë÷Òý´¦ÀíµÄµÍˮƽµÄ Lucene ÒòËØ¡£Lucene »ù×¼·¢²¼£¨Î»ÓÚ Lucene Ô´´úÂëµÄ contrib/benchmark ֮ϣ©°üº¬Á˺ܶà¿ÉÓÃÀ´¶ÔÕâЩÒòËØµÄ¸ü¸ÄЧ¹û½øÐлù×¼²âÊԵŤ¾ß¡£´ËÍ⣬Çë²ÎÔÄ ²Î¿¼×ÊÁÏ Ò»½ÚÖÐµÄ ¡°Solr ÐÔÄÜÒòËØ¡± À´Á˽âÓë¸÷ÖÖ¸ü¸ÄÏà¹ØµÄÐÔÄÜȨºâ¡£±í 1 ¸ÅÀ¨Á˿ɿØÖÆ Solr Ë÷Òý´¦ÀíµÄ¸÷ÖÖÒòËØ£º

±í 1. ¶ÔÐÔÄÜÒòËØ½øÐÐË÷Òý

 

²éѯ´¦ÀíÅäÖÃ

ÔÚ <query> ²¿·Ö£¬ÓÐһЩÓë »º´æ Î޹صÄÌØÐÔ£¬ÕâÒ»µãÄúÐèÒªÖªµÀ¡£Ê×ÏÈ£¬<maxBooleanClauses> ±ê¼Ç¶¨ÒåÁË¿É×éºÏÔÚÒ»ÆðÐγÉÒ»¸ö²éѯµÄ×Ó¾äÊýÁ¿µÄÉÏÏÞ¡£¶ÔÓÚ´ó¶àÊýÓ¦ÓóÌÐò¶øÑÔ£¬Ä¬È쵀 1024 ¾ÍÓ¦¸ÃÒѾ­×ã¹»£»È»¶ø£¬Èç¹ûÓ¦ÓóÌÐò´óÁ¿Ê¹ÓÃÁËͨÅä·û»ò·¶Î§²éѯ£¬Ôö¼ÓÕâ¸öÏÞÖµ½«ÄܱÜÃâµ±Öµ³¬³öʱ£¬Å׳ö TooManyClausesException¡£

ͨÅä·ûºÍ·¶Î§²éѯ

ͨÅä·ûºÍ·¶Î§²éѯÊÇ¿É×Ô¶¯À©Õ¹ÒÔ°üÀ¨ËùÓпÉÄÜÆ¥Åä²éѯÌõ¼þµÄÌõÄ¿µÄ Lucene ²éѯ¡£Í¨Åä·û²éѯÔÊÐíʹÓà * ºÍ ? ͨÅä·ûÔËËã·û£¬¶ø·¶Î§²éѯÔòÒªÇóÆ¥ÅäÎĵµ±ØÐëÒªÔÚÖ¸¶¨µÄ·¶Î§Ö®ÄÚ¡£ÀýÈ磬Èô²éÕÒ b*£¬¿ÉÄܵ¼ÖÂDZÔÚµÄÊýǧ¸ö²»Í¬Ïî¶¼×éºÏ½øÕâ¸ö²éѯ£¬½ø¶ø»áµ¼Ö TooManyClausesException¡£

½ÓÏÂÀ´£¬ÈôÓ¦ÓóÌÐòÔ¤ÆÚÖ»»á¼ìË÷ Document ÉÏÉÙÊý¼¸¸ö Field£¬ÄÇô¿ÉÒÔ½« <enableLazyFieldLoading> ÊôÐÔÉèÖÃΪ true¡£ÀÁÉ¢¼ÓÔØµÄÒ»¸ö³£¼û³¡¾°´ó¶¼·¢ÉúÔÚÓ¦ÓóÌÐò·µ»ØºÍÏÔʾһϵÁÐËÑË÷½á¹ûµÄʱºò£¬Óû§³£³£»áµ¥»÷ÆäÖеÄÒ»¸öÀ´²é¿´´æ´¢ÔÚ´ËË÷ÒýÖеÄԭʼÎĵµ¡£³õʼµÄÏÔʾ³£³£Ö»ÐèÒªÏÔʾºÜ¶ÌµÄÒ»¶ÎÐÅÏ¢¡£Èô¿¼Âǵ½¼ìË÷´óÐÍ Document µÄ´ú¼Û£¬³ý·Ç±ØÐ裬·ñÔò¾ÍÓ¦¸Ã±ÜÃâ¼ÓÔØÕû¸öÎĵµ¡£

×îºó£¬<query> ²¿·Ö¸ºÔð¶¨ÒåÓëÔÚ Solr Öз¢ÉúµÄʼþÏà¹ØµÄ¼¸¸öÑ¡Ïî¡£Ê×ÏÈ£¬×÷ΪһÖÖ½éÉܵķ½Ê½£¬Solr£¨Êµ¼ÊÉÏÊÇ Lucene£©Ê¹ÓóÆÎª Searcher µÄ Java ÀàÀ´´¦Àí Query ʵÀý¡£Searcher ½«Ë÷ÒýÄÚÈÝÏà¹ØµÄÊý¾Ý¼ÓÔØµ½ÄÚ´æÖС£¸ù¾ÝË÷Òý¡¢CPU ÒÔ¼°¿ÉÓÃÄÚ´æµÄ´óС£¬Õâ¸ö¹ý³Ì¿ÉÄÜÐèÒª½Ï³¤µÄÒ»¶Îʱ¼ä¡£Òª¸Ä½øÕâÒ»Éè¼ÆºÍÏÔÖøÌá¸ßÐÔÄÜ£¬Solr ÒýÈëÁËÒ»ÖÖ ¡°ÎÂů¡± ²ßÂÔ£¬¼´°ÑÕâЩÐ嵀 Searcher Áª»úÒÔ±ãΪÏÖ³¡Óû§Ìṩ²éѯ·þÎñ֮ǰ£¬ÏȶÔËüÃǽøÐÐ ¡°ÈÈÉí¡±¡£<query> ²¿·ÖÖÐµÄ <listener> Ñ¡ÏÒå newSearcher ºÍ firstSearcher ʼþ£¬Äú¿ÉÒÔʹÓÃÕâЩʼþÀ´Ö¸¶¨ÊµÀý»¯ÐÂËÑË÷³ÌÐò»òµÚÒ»¸öËÑË÷³ÌÐòʱӦ¸ÃÖ´ÐÐÄÄЩ²éѯ¡£Èç¹ûÓ¦ÓóÌÐòÆÚÍûÇëÇóÄ³Ð©ÌØ¶¨µÄ²éѯ£¬ÄÇôÔÚ´´½¨ÐÂËÑË÷³ÌÐò»òµÚÒ»¸öËÑË÷³ÌÐòʱ¾ÍÓ¦¸Ã·´×¢ÊÍÕâЩ²¿·Ö²¢Ö´ÐÐÊʵ±µÄ²éѯ¡£

solrconfig.xml ÎļþµÄÊ£Óಿ·Ö£¬³ý <admin> Ö®Í⣬º­¸ÇÁËÓë »º´æ¡¢¸´ÖÆ ºÍ À©Õ¹»ò¶¨ÖÆ Solr ÓйصÄÏîÄ¿¡£admin ²¿·ÖÈÃÄú¿ÉÒÔ¶¨ÖƹÜÀí½çÃæ¡£ÓйØÅäÖà admin ½ÚµÄ¸ü¶àÐÅÏ¢£¬Çë²Î¿´ Solr Wiki ºÍ solrconfig.xml ÎļþÖеÄ×¢ÊÍ¡£

¼àÊÓ¡¢¼Ç¼ºÍͳ¼ÆÊý¾Ý

ÔÚ http://localhost:8080/solr/admin µÄ¹ÜÀíÒ³£¬Óм¸¸ö²Ëµ¥ÌõÄ¿¿ÉÒÔÈà Solr ¹ÜÀíÔ±¼àÊÓ Solr ¹ý³Ì¡£±í 2 ¸ø³öÁËÕâЩÌõÄ¿£º

±í 2. ÓÃÓÚ¼àÊÓ¡¢¼Ç¼ºÍͳ¼ÆÊý¾ÝµÄ Solr ¹ÜÀíÑ¡Ïî

 

µ÷ÊÔ´Ë·ÖÎö¹ý³Ì

¾­³£µØ£¬µ±´´½¨ËÑË÷ʵÏÖʱ£¬Äú¶¼»áÊäÈëÒ»¸öÓ¦¸ÃÆ¥ÅäÌØ¶¨ÎĵµµÄËÑË÷£¬µ«Ëü²»»á³öÏÖÔÚ½á¹ûÖС£ÔÚ´ó¶àÊýÇé¿öÏ£¬¹ÊÕ϶¼ÊÇÓÉÈçÏÂÁ½¸öÒòËØÖ®Ò»ÒýÆðµÄ£º

²éѯ·ÖÎöºÍÎĵµ·ÖÎö²»Æ¥Å䣨ËäÈ»²»ÍƼö£¬µ«¶ÔÎĵµµÄ·ÖÎö¿ÉÄÜ»áÓë¶Ô²éѯµÄ·ÖÎö²»Í¬£©¡£

Analyzer ÕýÔÚÐ޸IJ»Í¬ÓÚÔ¤ÆÚµÄÒ»¸ö»ò¶à¸öÌõÄ¿¡£

¿ÉÒÔʹÓÃλÓÚ http://localhost:8080/solr/admin/analysis.jsp µÄ Solr ·ÖÎö¹ÜÀí¹¦ÄÜÀ´ÉîÈëµ÷²éÕâÁ½¸öÎÊÌâ¡£Analysis Ò³¿É½ÓÊÜÓÃÓÚ²éѯºÍÎĵµµÄÎı¾Æ¬¶ÎÒÔ¼°ÄÜÈ·¶¨Îı¾¸ÃÈçºÎ·ÖÎö²¢·µ»ØÕý±»Ð޸ĵÄÎı¾µÄÖð²½½á¹ûµÄ Field Ãû³Æ¡£Í¼ 1 ÏÔʾÁË·ÖÎö¾ä×Ó ¡°The Carolina Hurricanes are the reigning Stanley Cup champions, at least for a few more weeks¡± ÒÔ¼°Ïà¹ØµÄ²éѯ ¡°Stanley Cup champions¡± µÄ²¿·Ö½á¹û£¬ÕýÈçΪʾÀýÓ¦ÓóÌÐò schema.xml ÖÐÖ¸¶¨µÄ content Field ·ÖÎöµÄÄÇÑù£º

ͼ 1. ¶Ô·ÖÎö½øÐе÷ÊÔ

µ÷ÊÔ Solr µÄ·ÖÎö¹ý³Ì

·ÖÎöÆÁÄ»ÏÔʾÁËÿ¸öÌõ¼þÔÚ±»ÉÏÊö±í½á¹û Tokenizer »ò TokenFilter ´¦ÀíºóµÄ½á¹û¡£±ÈÈ磬StopFilterFactory »áɾ³ý×Ö The¡¢are ºÍ the¡£EnglishPorterFilterFactory »á½«×Ö champions ÌáȡΪ champion£¬½« Hurricanes ÌáȡΪ hurrican¡£×ÏÉ«µÄÐÑÄ¿ÏÔʾ±íÃ÷ÔÚÌØ¶¨ÎĵµÖвéѯÌõ¼þÔںδ¦ÓÐÆ¥Åä¡£

»ØÒ³Ê×

²éѯ²âÊÔ

admin Ò³µÄ Make a Query ²¿·ÖÌṩÁË¿ÉÊäÈë²éѯ²¢²é¿´½á¹ûµÄËÑË÷¿ò¡£Õâ¸öÊäÈë¿ò½ÓÊÜ µÚ 1 ²¿·Ö ÖÐÌÖÂÛµ½µÄ Lucene ²éѯ½âÎöÆ÷Óï·¨£¬¶ø Full Interface Á´½ÓÔòÌṩÁ˶Ըü¶àËÑË÷ÌØÐԵĿØÖÆ£¬±ÈÈç·µ»ØµÄ½á¹ûµÄÊýÁ¿¡¢ÔÚ½á¹û¼¯ÖÐÓ¦¸Ã°üÀ¨ÄÄЩ×Ö¶ÎÒÔ¼°ÈçºÎ¸ñʽ»¯Êä³ö¡£´ËÍ⣬¸Ã½çÃæ»¹¿ÉÓÃÀ´½âÊÍÎĵµµÄ¼Æ·ÖÒÔ¸üºÃµØÀí½âÄÄЩÌõ¼þµÃµ½ÁËÆ¥ÅäÒÔ¼°ÕâЩÌõ¼þÊÇÈçºÎµÃ·ÖµÄ¡£ÒªÊµÏÖÕâһĿµÄ£¬¿ÉÒԲ鿴 Debug: enable Ñ¡Ïî²¢¹ö¶¯µ½ËÑË÷½á¹ûµÄµ×¶ËÀ´²é¿´Ïà¹Ø½âÊÍ¡£

»ØÒ³Ê×

ÖÇÄÜ»º´æ

ÖÇÄÜ»º´æÊÇÈà Solr µÃÒÔ³ÉΪÒýÈËÖõÄ¿µÄËÑË÷·þÎñÆ÷µÄÒ»¸ö¹Ø¼üÐÔÄÜÌØÕ÷¡£ÀýÈ磬Solr ÔÚÌṩ»º´æ·þÎñ֮ǰ¿Éͨ¹ýʹÓþɻº´æÖеÄÐÅÏ¢À´×ÔÈÈ»º´æ£¬ÒÔ±ãÔÚ·þÎñÓÚÏÖÓÐÓû§µÄͬʱ¸Ä½øÐÔÄÜ¡£Solr ÌṩÁËËÄÖÖ²»Í¬µÄ»º´æÀàÐÍ£¬ËùÓÐËÄÖÖÀàÐͶ¼¿ÉÔÚ solrconfig.xml µÄ <query> ²¿·ÖÖÐÅäÖᣱí 3 ¸ù¾ÝÔÚ solrconfig.xml ÎļþÖÐËùÓõıê¼ÇÃûÁгöÁËÕâЩ»º´æÀàÐÍ£º

±í 3. Solr »º´æÀàÐÍ

 

ÿ¸ö»º´æÉùÃ÷¶¼½ÓÊÜ×î¶àËĸöÊôÐÔ£º

class ÊÇ»º´æÊµÏÖµÄ Java Ãû¡£

size ÊÇ×î´óµÄÌõÄ¿Êý¡£

initialSize ÊÇ»º´æµÄ³õʼ´óС¡£

autoWarmCount ÊÇÈ¡×Ծɻº´æÒÔÔ¤ÈÈлº´æµÄÌõÄ¿Êý¡£Èç¹ûÌõÄ¿ºÜ¶à£¬¾ÍÒâζ×Å»º´æµÄ hit »á¸ü¶à£¬Ö»²»¹ýÐèÒª»¨¸ü³¤µÄÔ¤ÈÈʱ¼ä¡£

¶ø¶ÔÓÚËùÓлº´æÄ£Ê½¶øÑÔ£¬ÔÚÉèÖûº´æ²ÎÊýʱ£¬¶¼ÓбØÒªÔÚÄÚ´æ¡¢CPU ºÍ´ÅÅÌ·ÃÎÊÖ®¼ä½øÐоùºâ¡£Í³¼ÆÐÅÏ¢¹ÜÀíÒ³ ¶ÔÓÚ·ÖÎö»º´æµÄ hit-to-miss ±ÈÀýÒÔ¼°Î¢µ÷»º´æ´óСµÄͳ¼ÆÊý¾Ý¶¼·Ç³£ÓÐÓ᣶øÇÒ£¬²¢·ÇËùÓÐÓ¦ÓóÌÐò¶¼»á´Ó»º´æÊÜÒæ¡£Êµ¼ÊÉÏ£¬Ò»Ð©Ó¦ÓóÌÐò·´¶ø»áÓÉÓÚÐèÒª½«Ä³¸öÓÀÔ¶Ò²Óò»µ½µÄÌõÄ¿´æ´¢ÔÚ»º´æÖÐÕâÒ»¶îÍâ²½Öè¶øÊܵ½Ó°Ïì¡£

·¢²¼ºÍ¸´ÖÆ

¶ÔÓÚÊÕµ½´óÁ¿²éѯµÄÓ¦ÓóÌÐò£¬µ¥Ò»Ò»¸ö Solr ·þÎñÆ÷¿ÖŲ»×ãÒÔÂú×ãÐÔÄÜÉϵÄÐèÇó¡£Òò¶ø£¬Solr ÌṩÁË¿ç¶à¸ö·þÎñÆ÷¸´ÖÆ Lucene Ë÷ÒýµÄ»úÖÆ£¬ÕâЩ·þÎñÆ÷±ØÐëÊǸºÔؾùºâµÄ²éѯ·þÎñÆ÷µÄÒ»²¿·Ö¡£¸´Öƹý³ÌÓÉ solrconfig.xml ÎļþÆô¶¯µÄʼþÕìÌý³ÌÐòºÍ¼¸¸ö shell ½Å±¾£¨Î»ÓÚʾÀýÓ¦ÓóÌÐòµÄ dw-solr/solr/bin£©´¦Àí¡£

ÔÚ¸´ÖƼܹ¹ÖУ¬Ò»¸ö Solr ·þÎñÆ÷³äµ±Ö÷·þÎñÆ÷£¬¸ºÔðÏòÒ»¸ö»ò¶à¸ö´¦Àí²éѯÇëÇóµÄ´Ó·þÎñÆ÷ÌṩË÷ÒýµÄ¸±±¾£¨³ÆÎª snapshot£©¡£Ë÷ÒýÃüÁî·¢Ë͵½Ö÷·þÎñÆ÷£¬²éѯÔò·¢Ë͵½´Ó·þÎñÆ÷¡£Ö÷·þÎñÆ÷¿ÉÒÔÊÖ¶¯´´½¨¿ìÕÕ£¬Ò²¿ÉÒÔͨ¹ýÅäÖà olrconfig.xml µÄ <updateHandler> ²¿·Ö£¨Çë²Î¼ûÇåµ¥ 1£©À´´¥·¢½ÓÊÕµ½ commit ºÍ/»ò optimize ʼþʱµÄ¿ìÕÕ´´½¨¡£ÎÞÂÛÊÇÊÖ¶¯´´½¨»¹ÊÇʼþÇý¶¯µÄ´´½¨£¬¶¼»áÔÚÖ÷·þÎñÆ÷Éϵ÷Óà snapshooter ½Å±¾£¬Õâ»áÔÚÃûΪ snapshot.yyyymmddHHMMSS£¨ÆäÖÐµÄ yyyymmddHHMMSS ´ú±íʵ¼Ê´´½¨¿ìÕÕµÄʱ¼ä£©µÄ·þÎñÆ÷ÉÏ´´½¨Ò»¸öĿ¼¡£Ö®ºó£¬´Ó·þÎñÆ÷ʹÓà rsync À´Ö»¸´ÖÆ Lucene Ë÷ÒýÖеÄÄÇЩÒѱ»¸ü¸ÄµÄÎļþ¡£

Çåµ¥ 1. ¸üоä±úÕìÌý³ÌÐò

<listener event="postCommit" class="solr.RunExecutableListener">
<str name="exe">snapshooter</str>
<str name="dir">solr/bin</str>
<bool name="wait">true</bool>
<arr name="args"> <str>arg1</str> <str>arg2</str> </arr>
<arr name="env"> <str>MYVAR=val1</str> </arr>
</listener>

Çåµ¥ 1 ÏÔʾÁËÔÚÊÕµ½ commit ʼþºó£¬ÔÚÖ÷·þÎñÆ÷ÉÏ´´½¨¿ìÕÕËùÐèµÄÅäÖá£Í¬ÑùµÄÅäÖÃҲͬÑùÊÊÓô¦Àí optimize ʼþ¡£ÔÚÕâ¸öʾÀýÅäÖÃÖУ¬ÔÚ commit Íê³Éºó£¬Solr µ÷ÓÃλÓÚ solr/bin Ŀ¼µÄ snapshooter ½Å±¾£¬´«ÈëÖ¸¶¨µÄ²ÎÊýºÍ»·¾³±äÁ¿¡£wait ʵ²Î¸æÖª Solr ÔÚ¼ÌÐøÖ®Ç°ÏȵȴýÏ̷߳µ»Ø¡£ÓйØÖ´ÐÐ snapshooter ºÍÆäËûÅäÖýű¾µÄÏêϸÐÅÏ¢£¬Çë²Î¼û Solr ÍøÕ¾É쵀 ¡°Solr Collection and Distribution Scripts¡± Îĵµ£¨Çë²Î¼û ²Î¿¼×ÊÁÏ£©¡£

ÔÚ´Ó·þÎñÆ÷ÉÏ£¬Ê¹Óà snappuller shell ½Å±¾´ÓÖ÷·þÎñÆ÷ÉϼìË÷¿ìÕÕ¡£snappuller ´ÓÖ÷·þÎñÆ÷ÉϼìË÷ÁËËùÐèÎļþºó£¬snapinstaller shell ½Å±¾¾Í¿ÉÓÃÀ´°²×°´Ë¿ìÕÕ²¢¸æÖª Solr ÓÐÒ»¸öеĿìÕÕ¿ÉÓ᣸ù¾Ý¿ìÕÕ´´½¨µÄƵÂÊ£¬×îºÃÊǰ²ÅÅϵͳ¶¨ÆÚÖ´ÐÐÕâЩ²½Öè¡£ÔÚÖ÷·þÎñÆ÷ÉÏ£¬rsync ÊØ»¤³ÌÐòÔÚ´Ó·þÎñÆ÷»ñµÃ¿ìÕÕ֮ǰ±ØÐëÏÈÐÐÆô¶¯¡£rsyn ÊØ»¤³ÌÐò¿ÉÓà rsyncd-enable shell ½Å±¾ÆôÓã¬È»ºóÔÙÓà rsyncd-start ÃüÁîʵ¼ÊÆô¶¯¡£ÔÚ´Ó·þÎñÆ÷ÉÏ£¬snappuller-enable shell ½Å±¾±ØÐëÔÚµ÷Óà snappuller shell ½Å±¾Ö®Ç°ÔËÐС£

Åųý·¢²¼¹ÊÕÏ

ËäÈ»£¬ÎÒÃÇÒѾ­½ß¾¡È«Á¦µØ¶ÔË÷Òý¸üÐµķ¢²¼½øÐÐÁËÓÅ»¯£¬µ«»¹ÊÇÓм¸¸ö³£¼ûµÄ³¡¾°»áΪ Solr ´øÀ´ÎÊÌ⣺

ÓÅ»¯´óÐÍË÷Òý¿ÉÄÜ»á·Ç³£ºÄʱ£¬¶øÇÒÓ¦¸ÃÔÚË÷Òý¸üв»ÊÇºÜÆµ·±µÄÇé¿öÏ²ŽøÐС£ ÓÅ»¯»áµ¼Ö¶à¸ö Lucene Ë÷ÒýÎļþºÏ²¢³ÉÒ»¸öµ¥Ò»Îļþ¡£Õâ¾ÍÒâζÕß´Ó·þÎñÆ÷±ØÐëÒª¸´ÖÆÕû¸öË÷Òý¡£È»¶ø£¬ÕâÖÖ·½Ê½µÄÓÅ»¯»¹ÊDZÈÔÚÿ¸ö´Ó·þÎñÆ÷ÉϽøÐÐÓÅ»¯ÒªºÃºÜ¶à¡£ÕâЩ·þÎñÆ÷¿ÉÄÜÓëÖ÷·þÎñÆ÷²»Í¬²½£¬µ¼ÖÂи±±¾Ôٴα»¼ìË÷¡£

Èç¹û´ÓÖ÷·þÎñÆ÷ÖлñȡпìÕյįµÂʹý¸ß£¬Ôò´Ó·þÎñÆ÷µÄÐÔÄÜ¿ÉÄܻήµÍ£¬ÕâÖÖ½µµÍÔ´ÓÚʹÓà snappuller ¸´ÖƸü¸ÄµÄ¿ªÏúÒÔ¼°ÔÚ°²×°ÐÂË÷ÒýʱµÄ»º´æÔ¤ÈÈ¡£ÓÐ¹ØÆµ·±µÄË÷Òý¸üз½ÃæµÄÐÔÄܾùºâµÄÏêϸÐÅÏ¢£¬Çë²Î¼û ²Î¿¼×ÊÁÏ ÖÐµÄ ¡°Solr Performance Factors¡±¡£

×îÖÕ£¬Ïò´Ó·þÎñÆ÷Ìí¼Ó¡¢Ìá½»ºÍ»ñÈ¡¸ü¸ÄµÄƵ·±³Ì¶ÈÍêȫȡ¾öÓÚÄú×Ô¼ºµÄÒµÎñÐèÇóºÍÓ²¼þÄÜÁ¦¡£×Ðϸ²âÊÔ²»Í¬µÄ³¡¾°½«»á°ïÖúÄú¶¨ÒåºÎʱÐèÒª´´½¨¿ìÕÕÒÔ¼°ºÎʱÐèÒª´ÓÖ÷·þÎñÆ÷ÖлñÈ¡ÕâЩ¿ìÕÕ¡£ÓйØÉèÖúÍÖ´ÐÐ Solr ·¢²¼ºÍ¸´ÖƵĸü¶àÐÅÏ¢£¬Çë²Î¿´ ²Î¿¼×ÊÁÏ ÖÐµÄ ¡°Solr Collection and Distribution¡± Îĵµ¡£

¶¨ÖÆ Solr

Solr ÌṩÁ˼¸¸ö²å¼þµã£¬Äú¿ÉÒÔÔÚÕâÀïÌí¼Ó¶¨Öƹ¦ÄÜÀ´À©Õ¹»òÐÞ¸Ä Solr ´¦Àí¡£´ËÍ⣬ÓÉÓÚ Solr ÊÇ¿ªÔ´µÄ£¬ËùÒÔÈç¹ûÐèÒª²»Í¬µÄ¹¦ÄÜ£¬Äú¾¡¿ÉÒÔ¸ü¸ÄÔ´´úÂë¡£ÓÐÁ½ÖÖ·½Ê½¿ÉÒÔÏò Solr Ìí¼Ó²å¼þ£º

´ò¿ª Solr WAR£¬ÔÚ WEB-INF/lib Ŀ¼ÏÂÌí¼ÓÐÂµÄ¿â£¬ÖØÐ´ò°üÕâЩÎļþ£¬È»ºó½« WAR Îļþ²¿Êðµ½ servlet ÈÝÆ÷¡£

½« JAR ·ÅÈë Solr Home lib Ŀ¼£¬È»ºóÆô¶¯ servlet ÈÝÆ÷¡£ÕâÖÖ·½·¨Ê¹ÓÃÁ˶¨ÖÆ ClassLoader ÇÒÓпÉÄܲ»ÊÊÓÃÓÚijЩ servlet ÈÝÆ÷¡£

½ÓÏÂÀ´µÄ¼¸¸öÕ½ÚÍ»³ö½éÉÜÁË¿ÉÄÜÏ£ÍûÀ©Õ¹ Solr µÄ¼¸¸öÁìÓò¡£

ÇëÇó´¦Àí
ÈôÏÖÓеŦÄܲ»ÄÜÂú×ãÒµÎñÐèÇó£¬Solr ÔÊÐíÓ¦ÓóÌÐòʵÏÖÆä×ÔÉíµÄÇëÇó´¦Àí¹¦ÄÜ¡£±ÈÈ磬Äú¿ÉÄÜÏëÒªÖ§³ÖÄú×Ô¼ºµÄ²éѯÓïÑÔ»òÏëÒª½« Solr ÓëÄúµÄÓû§ÅäÖÃÎļþÏ༯³ÉÀ´Ìṩ¸öÐÔ»¯µÄЧ¹û¡£SolrRequestHandler ½Ó¿Ú¶¨ÒåÁËʵÏÖ¶¨ÖÆÇëÇó´¦ÀíËùÐèµÄ·½·¨¡£Êµ¼ÊÉÏ£¬³ýÁË µÚ 1 ²¿·Ö ËùʹÓõÄÄÇЩĬÈ쵀 ¡°±ê×¼¡± ÇëÇó´¦Àí³ÌÐòÖ®Í⣬Solr »¹¶¨ÒåÁËÆäËû¼¸¸öÇëÇó´¦Àí³ÌÐò£º

ĬÈ쵀 StandardRequestHandler ʹÓà Lucene Query Parser Óï·¨´¦Àí²éѯ£¬Ìí¼ÓÁËÅÅÐòºÍ²ãÃæä¯ÀÀ¡£

DisMaxRequestHandler ±»Éè¼ÆÓÃÀ´Í¨¹ý¸üΪ¼òµ¥µÄÓï·¨À´¿ç¶à¸ö Field ½øÐÐËÑË÷¡£ËüÒ²Ö§³ÖÅÅÐò£¨Ê¹ÓÃÓë±ê×¼´¦Àí³ÌÐòÉÔÓв»Í¬µÄÓï·¨£©ºÍ²ãÃæä¯ÀÀ¡£

IndexInfoRequestHandler ¿ÉÒÔ¼ìË÷ÓйØË÷ÒýµÄÐÅÏ¢£¬±ÈÈçË÷ÒýÖеÄÎĵµÊý»ò Field Êý¡£

ÇëÇó´¦Àí³ÌÐòÊÇÓÉÇëÇóÖÐµÄ qt ²ÎÊýÖ¸¶¨µÄ¡£Solr servlet ʹÓòÎÊýÖµÀ´²éÕÒ¸ø¶¨µÄÇëÇó´¦Àí³ÌÐò²¢½«ÊäÈëÓÃÓÚÇëÇó´¦Àí³ÌÐòµÄ´¦Àí¡£ÇëÇó´¦Àí³ÌÐòµÄÉùÃ÷ºÍÃüÃûͨ¹ý solrconfig.xml ÖÐµÄ <requestHandler> ±ê¼ÇÖ¸¶¨¡£ÒªÌí¼ÓÆäËûµÄÄÚÈÝ£¬Ö»ÐèʵÏÖ¶¨ÖÆµÄ SolrRequestHandler Ḭ̈߳²È«µÄʵÀý¼´¿É£¬½«ÆäÌí¼Óµ½ ÉÏÊö ¶¨ÒåºÃµÄ Solr£¬²¢½«Æä°üÀ¨µ½ ÈçǰËùÊö µÄÀà·¾¶ÖУ¬Ö®ºó¾Í¿ÉÒÔͨ¹ý HTTP GET »ò POST ·½·¨¿ªÊ¼ÏòÆä·¢ËÍÇëÇóÁË¡£

ÏìÓ¦´¦Àí

ÓëÇëÇó´¦ÀíÀàËÆ£¬Ò²¿ÉÒÔ¶¨ÖÆÏìÓ¦Êä³ö¡£±ØÐëÒªÖ§³ÖÀÏʽµÄËÑË÷Êä³ö»ò±ØÐëҪʹÓöþ½øÖÆ»ò¼ÓÃÜÊä³ö¸ñʽµÄÓ¦ÓóÌÐò¿ÉÒÔͨ¹ýʵÏÖ QueryResponseWriter À´Êä³öËùÐèµÄ¸ñʽ¡£ È»¶ø£¬ÔÚÌí¼ÓÄú×Ô¼ºµÄ QueryResponseWriter ֮ǰ£¬ÐèÒªÏÈÉîÈëÑо¿Ò»Ï Solr Ëù×Ô´øµÄʵÏÖ£¬Èç±í 4 Ëùʾ£º

±í 4. Solr µÄ²éѯÏìÓ¦ÊéдÆ÷

 

QueryResponseWriter ͨ¹ý <queryResponseWriter> ±ê¼Ç¼°Æä¸½ÊôÊôÐÔ±»Ìí¼ÓÖÁ Solr µÄ solrconfig.xml Îļþ¡£ÏìÓ¦µÄÀàÐÍͨ¹ý wt ²ÎÊýÔÚÇëÇóÖÐÖ¸¶¨¡£Ä¬ÈÏÖµÊÇ ¡°±ê×¼¡±£¬¼´ÔÚ solrconfig.xml ÖÐÉ趨Ϊ XMLResponseWriter¡£×îºóҪǿµ÷µÄÊÇ£¬QueryResponseWriter µÄʵÀý±ØÐëÌṩÓÃÀ´´´½¨ÏìÓ¦µÄ write() ºÍ getContentType() ·½·¨µÄḬ̈߳²È«µÄʵÏÖ¡£

Analyzer¡¢Tokenizer¡¢TokenFilter ºÍ FieldType

½èÖúÐ嵀 Analyzer¡¢Tokenizer¡¢TokenFilter ¿ÉÒÔ¶¨ÖÆ Solr µÄË÷ÒýÊä³öÒÔÌṩеķÖÎö¹¦ÄÜ¡£×ÔÉíÐèÒª Tokenizer »ò TokenFilter µÄÓ¦ÓóÌÐò±ØÐëʵÏÖÆä×ÔÉíµÄ TokenizerFactory ºÍ TokenFilterFactory£¬ÕâÁ½ÕßʹÓà <tokenizer> »ò <filter> ±ê¼Ç£¨×÷Ϊ <analyzer> ±ê¼ÇµÄÒ»²¿·Ö£©ÔÚ schema.xml ÖÐÉùÃ÷¡£Èç¹ûÄú´Ó֮ǰµÄÓ¦ÓóÌÐòÖÐÒѾ­»ñµÃÁËÒ»¸ö Analyzer£¬ÄÇô¾Í¿ÉÒÔÔÚ <analyzer> ±ê¼ÇµÄ class ÊôÐÔÖÐÉùÃ÷Ëü²¢½øÐÐʹÓá£ÄúÎÞÐè´´½¨Ð嵀 Analyzer£¬³ý·ÇÊÇÏëÒªÔÚÆäËû Lucene Ó¦ÓóÌÐòÖÐʹÓÃÕâЩ·ÖÎöÆ÷ ¡ª¡ª ÔÚ schema.xml ÖÐʹÓà <analyzer> ±ê¼ÇÉùÃ÷ Analyzer ÕæÊÇÈÝÒ×ѽ£¡

Èç¹ûÓ¦ÓóÌÐòÓÐÌØ¶¨µÄÊý¾ÝÐèÇó£¬Äú¿ÉÄÜÐèÒªÌí¼ÓÒ»¸ö FieldType À´´¦ÀíÊý¾Ý¡£±ÈÈ磬¿ÉÒÔÌí¼ÓÒ»¸ö FieldType À´´¦ÀíÀ´×ԾɵÄÓ¦ÓóÌÐòµÄ¶þ½øÖÆ×ֶΣ¬ÔÚ Solr ÖÐÓ¦¸Ã¿ÉÒÔËÑË÷µ½Õâ¸öÓ¦ÓóÌÐò¡£Ö»ÐèʹÓà <fieldtype> ÉùÃ÷½« FieldType Ìí¼Óµ½ schema.xml ²¢È·±£ËüÔÚÀà·¾¶ÖпÉÓá£

ÐÔÄÜ¿¼ÂÇ

ËäÈ» Solr ¿ÉÒÔ¿ªÏä¼´Ó㬵«»¹ÊÇÓм¸¸ö¼¼ÇÉ¿ÉÓÐÖúÓÚÈÃËü¸üÒ×ÓÚʹÓá£ÓëÈκÎÓ¦ÓóÌÐòÒ»Ñù£¬×Ðϸ¿¼ÂÇÄú¶ÔÊý¾Ý·ÃÎʵľßÌåÒµÎñÐèÇóÈÎÖØ¶øµÀÔ¶¡£±ÈÈ磬Ìí¼ÓµÄÒÑË÷Òý Field Ô½¶à£¬¶ÔÄÚ´æµÄÐèÇó¾ÍÔ½¶à¡¢Ë÷Òý¾ÍÔ½´ó¡¢ÓÅ»¯¸ÃË÷ÒýËùÐèµÄʱ¼äÒ²Ô½³¤¡£Í¬ÑùµÄ£¬¼ìË÷ÒÑ´æ´¢µÄ Field »áÒòΪ̫¶àµÄ I/O ´¦Àí¶ø¼õÂý·þÎñÆ÷µÄËÙ¶È¡£Ê¹ÓÃÀÁÉ¢×ֶμÓÔØ»òÔÚËû´¦´æ´¢´óÐÍÄÚÈÝ¿ÉÒÔΪËÑË÷ÇëÇóÊÍ·Å CPU ×ÊÔ´¡£

ÔÚËÑË÷²ãÃæÉÏ£¬ÄúÓ¦¸Ã¿¼ÂÇËùÖ§³ÖµÄ²éѯÀàÐÍ¡£ºÜ¶àÓ¦ÓóÌÐò¶¼²»ÐèÒª Lucene Query Parser Óï·¨µÄÈ«²¿£¬ÓÈÆäÊÇʹÓÃͨÅä·ûºÍÆäËû¸ß¼¶²éѯÀàÐ͵ÄÇé¿öϾ͸üÊÇÈç´Ë¡£ÈôÄÜ·ÖÎöÈÕÖ¾ºÍÈ·±£³£ÓõIJéѯ±»»º´æ£¬½«»á·Ç³£ÓаïÖú¡£ÎªÒ»°ãµÄ²éѯʹÓà Filter ¶ÔÓÚ¼õÉÙ·þÎñÆ÷µÄ¸ºÔØÒ²·Ç³£ÓÐÓá£ÓëÈκÎÓ¦ÓóÌÐòÒ»Ñù£¬È«ÃæµØ²âÊÔÓ¦ÓóÌÐò¿ÉÈ·±£ Solr Äܹ»Âú×ãÄúµÄÐÔÄÜÐèÇó¡£ÓÐ¹Ø Lucene£¨ºÍ Solr£©ÐÔÄܵĸü¶àÐÅÏ¢£¬Çë²ÎÔÄ ²Î¿¼×ÊÁÏ Öиø³öµÄ ApacheCon Europe µÄ ¡°Advanced Lucene¡± »ÃµÆÆ¬ÑÝʾ¡£

Solr ǰ¾°¹âÃ÷

¹¹½¨ÓÚ Lucene µÄËٶȺÍÇ¿´ó¹¦ÄÜÖ®ÉÏ£¬Solr ±¾Éí¾ÍÖ¤Ã÷ÁËËüÍêÈ«¿ÉÒÔ³ÉΪÆóÒµ¼¶µÄËÑË÷½â¾ö·½°¸¡£ËüÎüÒýÁË´óÁ¿»îÔ¾µÄÉçÇøÊ¹ÓÃÕߣ¬ÕâЩʹÓÃÕßÒѾ­½«ËüÓõ½Á˸÷ÖÖ´óÐÍµÄÆóÒµ»·¾³¡£Solr Ò²»ñµÃÁË¿ª·¢ÈËÔ±µÄÖÔÐÄÖ§³Ö£¬ËûÃÇ»¹Ò»Ö±ÔÚѰÕÒÌá¸ßËüµÄ;¾¶¡£

ÔÚÕâ¸ö°üº¬Á½²¿·ÖµÄÎÄÕ£¬ÄúÁ˽âÁË Solr£¬°üÀ¨Ëü¿ªÏä¼´ÓõÄË÷ÒýºÍËÑË÷¹¦ÄÜÒÔ¼°ÓÃÀ´ÅäÖÃÆä¹¦ÄÜµÄ XML ģʽ¡£ÁíÍ⣬Äú»¹ä¯ÀÀÁËÈà Solr µÃÒÔ³ÉΪÆóÒµ¼Ü¹¹µÄÀíÏëÑ¡ÔñµÄÅäÖú͹ÜÀíÌØÐÔ¡£×îºó£¬Äú»¹»ñϤÁ˲ÉÓà Solr ʱµÄÐÔÄÜ¿¼ÂÇÒÔ¼°¿ÉÓÃÀ´À©Õ¹ËüµÄ¼Ü¹¹¡£

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

Java΢·þÎñÐÂÉú´úÖ®Nacos
ÉîÈëÀí½âJavaÖеÄÈÝÆ÷
JavaÈÝÆ÷Ïê½â
Java´úÂëÖÊÁ¿¼ì²é¹¤¾ß¼°Ê¹Óð¸Àý
Ïà¹ØÎĵµ

JavaÐÔÄÜÓÅ»¯
Spring¿ò¼Ü
SSM¿ò¼Ü¼òµ¥¼òÉÜ
´ÓÁ㿪ʼѧjava±à³Ì¾­µä
Ïà¹Ø¿Î³Ì

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

Java ÖеÄÖÐÎıàÂëÎÊÌâ
Java»ù´¡ÖªÊ¶µÄÈýÊ®¸ö¾­µäÎÊ´ð
Íæ×ª Java Web Ó¦Óÿª·¢
ʹÓÃSpring¸üºÃµØ´¦ÀíStruts
ÓÃEclipse¿ª·¢iPhone WebÓ¦ÓÃ
²å¼þϵͳ¿ò¼Ü·ÖÎö

Struts+Spring+Hibernate
»ùÓÚJ2EEµÄWeb 2.0Ó¦Óÿª·¢
J2EEÉè¼ÆÄ£Ê½ºÍÐÔÄܵ÷ÓÅ
Java EE 5ÆóÒµ¼¶¼Ü¹¹Éè¼Æ
Javaµ¥Ôª²âÊÔ·½·¨Óë¼¼Êõ
Java±à³Ì·½·¨Óë¼¼Êõ

Struts+Spring+Hibernate/EJB+ÐÔÄÜÓÅ»¯
»ªÏÄ»ù½ð ActiveMQ Ô­ÀíÓë¹ÜÀí
ijÃñº½¹«Ë¾ Java»ù´¡±à³Ìµ½Ó¦Óÿª·¢
ij·çµç¹«Ë¾ Java Ó¦Óÿª·¢Æ½Ì¨ÓëÇ¨ÒÆ
ÈÕÕÕ¸Û J2EEÓ¦Óÿª·¢¼¼Êõ¿ò¼ÜÓëʵ¼ù
ij¿ç¹ú¹«Ë¾ ¹¤×÷Á÷¹ÜÀíJBPM
¶«·½º½¿Õ¹«Ë¾ ¸ß¼¶J2EE¼°ÆäÇ°ÑØ¼¼Êõ