µÚ
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 ʱµÄÐÔÄÜ¿¼ÂÇÒÔ¼°¿ÉÓÃÀ´À©Õ¹ËüµÄ¼Ü¹¹¡£
|