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

1Ôª 10Ôª 50Ôª





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



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
SolrÈ«¹¥ÂÔ
 
×÷ÕߣºEven710
  5812  次浏览      28
 2019-11-6
 
±à¼­ÍƼö:
ÎÄÕÂÊ×ÏȶÔSolr½øÐÐÁ˼òµ¥µÄ½éÉܺͰ²×°£¬È»ºóÕë¶ÔSolrµÄÅäÖü°Ä¿Â¼½á¹¹½øÐÐÁËÏêϸ˵Ã÷¡£×îºóͨ¹ýÒ»¸ö¼òµ¥µÄʾÀýÀ´½éÉÜÁËÈçºÎʹÓÃSolr¡£
±¾ÎÄÀ´×ÔÓÚcsdn£¬ÓÉ»ðÁú¹ûÈí¼þLuca±à¼­¡¢ÍƼö¡£

Solr¼ò½é

¹ÙÍø£ºhttps://lucene.apache.org/solr/

SolrÊÇ»ùÓÚApache Lucene™¹¹½¨µÄÁ÷ÐУ¬¿ìËÙ£¬¿ªÔ´µÄÆóÒµËÑË÷ƽ̨¡£

SolrÊÇÒ»¸öJava WebÓ¦Ó㬿ÉÒÔÔËÐÐÔÚÈκÎÖ÷Á÷Java ServletÒýÇæÖС£ÏÂÃæÀ´¿´Ò»¸öSolr·þÎñÆ÷µÄÖ÷ÒªÈí¼þ¹¹³É£º

Solr»ùÓÚÒÑÓеÄXML¡¢JSONºÍHTTP±ê×¼£¬Ìṩ¼òµ¥µÄÀàËÆRESTµÄ·þÎñ£¬ÕâʹµÃSolr¿ÉÒÔ±»²»Í¬±à³ÌÓïÑÔµÄÓ¦Ó÷ÃÎÊ¡£

Solr¿ÉÒÔʹÓÃZookeeperʵÏÖ¼òÒ×·ÖÆ¬ºÍ¸´ÖÆ£¬Í³Ò»ÅäÖá£

ΪÁËÌá¸ß²éѯËٶȺʹ¦Àí¸ü¶àµÄÎĵµ£¬Solr¿ÉÒÔͨ¹ýË÷Òý·ÖƬÀ´ÊµÏÖ·Ö²¼Ê½²éѯ¡£

ΪÁËÌá¸ßÍÌÍÂÁ¿ºÍÈÝ´íÄÜÁ¦£¬¿ÉÒÔΪÿ¸öË÷Òý·ÖƬÔö¼Ó¸±±¾£¬Í¬Ê±£¬°ÑËùÓеÄË÷Òý¸´ÖƵ½ÆäËûµÄ·þÎñÆ÷´î½¨³ÉÒ»¸ö·þÎñÆ÷¼¯Èº£¬Ìá¸ßÍÌÍÂÁ¿¡£

¿Éͨ¹ý»º´æÀ´Ìá¸ß²éѯËÙ¶È£¬´ïµ½½üʵʱ²éѯ¡£²¢Ð´Èëµ½Ó²ÅÌÒÔ´ïµ½³Ö¾Ã»¯Ë÷Òý¡£

Solr¾ßÓи߿ɿ¿ÐÔ£¬¿ÉÀ©Õ¹ÐÔºÍÈÝ´íÐÔ£¬¿ÉÌṩ·Ö²¼Ê½Ë÷Òý£¬¸´Öƺ͸ºÔؾùºâ²éѯ£¬×Ô¶¯¹ÊÕÏ×ªÒÆºÍ»Ö¸´£¬¼¯ÖÐÅäÖõȡ£SolrΪÊÀ½çÉÏÐí¶à×î´óµÄ»¥ÁªÍøÕ¾µãµÄËÑË÷ºÍµ¼º½¹¦ÄÜÌṩ֧³Ö¡£

¸ß¿É¿¿ÐÔ

SolrÓÐÈý¸öÖ÷ÒªµÄ×Óϵͳ£ºÎĵµ¹ÜÀí¡¢²éѯ´¦ÀíºÍÎı¾·ÖÎö¡£Ã¿Ò»¸ö×Óϵͳ£¬¶¼ÊÇÓÉÄ£¿é»¯µÄ¡°¹ÜµÀ¡±¹¹³ÉµÄ£¬Í¨¹ý²å¼þ·½Ê½ÊµÏÖй¦ÄÜ£¬ÕâÒâζ×Å£¬ÎÒÃÇ¿ÉÒÔ¸ù¾ÝÌØ¶¨µÄÓ¦ÓÃÐèÇóʵÏÖ¶¨ÖÆ¡£

¿ÉÀ©Õ¹ÐÔ

LuceneÊÇÒ»¸öÖ´ÐÐËÙ¶ÈÏ൱¿ìµÄËÑË÷Àà¿â£¬Solr¼³È¡ÁËLuceneËÙ¶È·½ÃæµÄËùÓÐÓŵ㡣µ«ÒòCPUµÄI/OÔ­Ôò£¬µ¥Ì¨·þÎñÆ÷ÖÕ»á´ïµ½²¢·¢ÇëÇóµÄ´¦ÀíÉÏÏÞ¡£ÎªÁ˽â¾öÕâ¸öÎÊÌ⣬һ£¬SolrÌṩÁé»îµÄ»º´æ¹ÜÀí¹¦ÄÜ£¬°ïÖú·þÎñÆ÷ÖØÓÃÔËËãÁ¿´óµÄÊý¾ÝÀ©ÈÝ¡£¶þ£¬¿ÉÒÔͨ¹ýÔö¼Ó·þÎñÆ÷ʵÏÖÔöÈÝ¡£

SolrÉìËõÐÔÓÐÁ½¸ö³£ÓõÄά¶È£º²éѯÍÌÍÂÁ¿ºÍÎĵµË÷ÒýÁ¿¡£²éѯÍÌÍÂÁ¿ÊÇÖ¸ËÑË÷ÒýÇæÃ¿ÃëÖ§³ÖµÄ²éѯÊýÁ¿£¬ÔÚ¶ą̀·þÎñÆ÷¶¼¸´ÖÆÒ»·ÝË÷Òý£¬µ±ÓдóÁ¿²éѯÇëÇó½øÈëʱ£¬¿ÉÒÔ¼õÇáÿ̨·þÎñÆ÷µÄѹÁ¦¡£ÎĵµË÷ÒýÁ¿ÊÇÖ¸Ë÷ÒýÎĵµµÄ´óС£¬µ±ÊýÁ¿¹æÄ£ºÜ´óʱ£¬µ¥¸öʵÀý»áÒòÈÝÄÉÌ«¶àÎĵµ¶ø´ïµ½¼«ÏÞ£¬²éѯÐÔÄÜÒ²»áÊÜÓ°Ï졣ΪÁË´¦Àí¸ü¶àÎĵµ£¬¿ÉÒÔ½«Ë÷Òý²ð·ÖΪºÜСµÄË÷Òý·ÖƬ£¬È»ºóÔÚË÷Òý·ÖƬÖнøÐзֲ¼Ê½ËÑË÷¡£

ÈÝ´íÐÔ

µ±ÏßÉÏÔËÐÐSolrʱ£¬Èç¹ûË÷Òý·ÖƬÖÐÆäÖÐÒ»¸ö·ÖƬµÄ·þÎñÆ÷¶ÏµçÁË£¬¾Í»áµ¼ÖÂSolrÎÞ·¨¼ÌÐøË÷ÒýÎĵµºÍÌṩ²éѯ·þÎñ£¬Òò´Ë£¬ÎªÁ˱ÜÃâ´ËÖÖÇé¿ö³öÏÖ£¬Ó¦¸Ã¶Ôÿһ¸ö·ÖƬÌí¼Ó¸±±¾£¬µ±ÆäÖÐһ̨·ÖƬ·þÎñÆ÷·¢Éú¹ÊÕÏʱ£¬¿ÉÒÔÆôÓø±±¾À´Ë÷ÒýºÍ´¦Àí²éѯ¡£

Solr°²×°

°²×°Ö®Ç°£¬È·±£ÒѰ²×°ÁËÕýÈ·µÄJava°æ±¾£¬Ò»°ãΪ1.6ÒÔÉϰ汾¡£

ÏÂÔØSolrѹËõ°ü£¬Ç°ÐÐhttp://www.apache.org/dyn /closer.lua/lucene/solr/7.6.0ÏÂÔØ7.6.0°æ±¾Solr£¬¸ù¾Ý×Ô¼ºµÄϵͳÏÂÔØ¶ÔÓ¦µÄѹËõ°ü£¬ÎÒµÄÊÇwindows£¬ËùÒÔÏÂÔØsolr-7.6.0.zip¡£

½âѹËõºóÌí¼Ó»·¾³±äÁ¿SOLR_HOME£¬Ö¸ÏòSolr½âѹËõµÄĿ¼¡£

SOLR_INSTALL=D:\solr-7.6.0
PATH=%SOLR_INSTALL%\bin

Ŀ¼˵Ã÷£º

bin/£¬¸ÃĿ¼°üº¬¼¸¸öÖØÒªµÄ½Å±¾£¬¿ÉÒÔÇáËÉʹÓÃsolr¡£

solrºÍsolr.cmd£¬ÕâÊÇ solrµÄ¿ØÖƽű¾£¬ÓÃÓÚÆô¶¯ºÍÍ£Ö¹solrµÄ·þÎñÆ÷¡£ÔÚslorCloudģʽÏÂÔËÐÐʱ£¬¿ÉÒÔ´´½¨¼¯ºÏ»òÄںˣ¬ÅäÖÃÉí·ÝÑéÖ¤ÒÔ¼°Ê¹ÓÃÅäÖÃÎļþ¡£

post£¬post¹¤¾ß£¬ËüÌṩÁËÓÃÓÚ·¢²¼ÄÚÈݵ½solrµÄÒ»¸ö¼òµ¥µÄÃüÁîÐнçÃæ¡£

solr.in.shºÍsolr.in.cmd£¬´Ë´¦ÅäÖÃJava£¬JettyºÍsolrµÄϵͳ¼¶ÊôÐÔ£¬¼´È«¾ÖÊôÐÔ¡£

install_solr_services.sh£¬ÔÚunixϵͳÉÏÓÃÓÚ½«solr°²×°Îª·þÎñ¡£

contrib/£¬¸ÃĿ¼°üº¬solrרÓù¦Äܵĸ½¼Ó²å¼þ¡£

dist/£¬°üº¬Ö÷ÒªµÄsolr.jarÎļþ¡£

docs/£¬solr javadoc¡£

example/£¬°üÀ¨¼¸ÖÖÑÝʾ¸÷ÖÖsolr¹¦ÄܵÄʾÀý¡£

licenses/£¬°üº¬solrʹÓõĵÚÈý·½¿âµÄËùÓÐÐí¿ÉÖ¤

server/£¬´ËĿ¼°üº¬ÁËÔËÐÐSolr·þÎñÆ÷µÄJetty ServletÈÝÆ÷ÉèÖ㬴ËĿ¼ÖеÄREADMEÎļþÌṩÁËÏêϸµÄ¸ÅÊö¡£

SolrµÄ¹ÜÀíÔ±UI£¨server/solr-webapp£©

Jetty libraries£¨server/lib£©

ÈÕÖ¾Îļþ£¨server/logs£©ºÍÈÕÖ¾ÅäÖã¨server/resources£©

ʾÀýÅäÖü¯£¨server/solr/configsets£©

solrÖ÷Ŀ¼£¨server/solr£©

solr startÆô¶¯solr·þÎñÆ÷£¬solr stopÍ£Ö¹solr·þÎñÆ÷£¬·þÎñÆ÷¶Ë¿ÚΪ8983£º

Solr²¿Êðģʽ

Solr·þÎñÆ÷ÓÐÁ½ÖÖ²¿Êðģʽ£¬·Ö±ðΪµ¥»úģʽ£¨Standalone Server£©ºÍ·Ö²¼Ê½¼¯ÈºÄ£Ê½£¨SolrCloud£©

ÄÚºËVS¼¯ºÏ

SolrµÄÄÚºËÊÇÔËÐÐÔÚSolr·þÎñÆ÷ÖеľßÓÐΨһÃüÃûµÄ¡¢¿É¹ÜÀíµÄºÍ¿ÉÅäÖõÄË÷Òý¡£Ò»Ì¨Solr·þÎñÆ÷¿ÉÒÔÍйÜÒ»¸ö»ò¶à¸öÄںˡ£Äں˵äÐ͵ÄÓÃ;ÊÇΪÁËÇø·Ö²»Í¬Ä£Ê½µÄÎĵµ¡£µ¥»úģʽÏ£¬Äں˿ÉÒÔÀí½âΪһ¸öË÷Òý¿â¡£

SolrCloudÒýÈëÁ˼¯ºÏµÄ¸ÅÄ¼¯ºÏ½«¾ßÓÐΨһÃüÃûµÄ¡¢¿É¹ÜÀíµÄºÍ¿ÉÅäÖõÄË÷ÒýÀ©Õ¹³É²»Í¬µÄ·ÖƬ£¬²¢ÇÒ·ÖÅäµ½¶ą̀·þÎñÆ÷ÉÏ¡£·Ö²¼Ê½Ë÷ÒýµÄÿһ¸ö·ÖƬ¶¼ÍйÜÔÚÒ»¸öSolrµÄÄÚºËÖУ¬¼´¶à¸öÄں˿ÉÒÔ×é³ÉÒ»¸öË÷Òý¿â¡£

Ŀ¼½á¹¹

ÿ¸ösolr·þÎñÆ÷½ø³Ì¶¼ÓÐÒ»¸ösolrÖ÷Ŀ¼£¬ÏµÍ³±äÁ¿ÃûΪsolr.solr.home£¬Ä¬ÈÏΪserver/solrĿ¼:

Ö÷Ŀ¼µÄ×÷ÓÃÊÇÔÚÓÚ´æ´¢·þÎñÆ÷ʵÀýÍйܵÄÄں˵ġ£

ÔËÐÐsolr·þÎñÆ÷ʵÀýµÄÃüÁ

ĬÈ϶˿ÚÊÇ8983¡£Ö¸¶¨ÁíÒ»¸öÖ÷Ŀ¼£¬Ö÷Ŀ¼Ï±ØÐëÒªÓÐÒ»¸ösolr.xmlÎļþ£º

Ö´ÐÐÃüÁ-sÊÇÖ¸¶¨Ö÷Ŀ¼µÄ·¾¶£¬-pÊÇÖ¸¶¨ÐÂÆô¶¯µÄ·þÎñÆ÷ʵÀý¼àÌýµÄ¶Ë¿Ú£º

]

´´½¨Äںˣ¬ÐèÒªÖ¸¶¨solr·þÎñÆ÷¼àÌýµÄ¶Ë¿Ú£¬ÕâÑù²ÅÄÜʹÄں˴洢ÔÚ¶ÔÓ¦µÄÖ÷Ŀ¼£º

´´½¨³É¹¦ºó£¬»áÔÚÖ÷Ŀ¼ÏÂÉú³ÉÄÚºËĿ¼£º

ÄÚºËĿ¼ÓÐÈý¸öÎļþ£º

(1)conf/£ºÄÚºËÅäÖÃÎļþµÄÎļþ¼Ð£¬ÀïÃæÓиösolrconfig.xmlÓÃÓÚ¿ØÖƸ߼¶ÅäÖÃÐÅÏ¢¡£

(2)data/£ºË÷ÒýÊý¾Ý´æ·ÅµÄĿ¼£¬Ï൱ÓÚluceneÖж¨ÒåIndexWriter¶ÔÏóµÄµÚÒ»¸öDirectory²ÎÊý¡£

(3)core.preperties£ºÄں˵ÄһЩ²ÎÊý¶¨Òå¡£

´ò¿ªsorl admin ui¿ÉÒÔ¿´µ½¹ØÓÚÄں˵ÄÐÅÏ¢£º

SolrÅäÖÃÎļþ

solr.xml

solr.xmlÎļþ¶¨ÒåÁËһЩÊÊÓÃÓÚËùÓлò¶à¸öÄں˵ÄÈ«¾ÖÅäÖÃÑ¡Ïî¡£

ÔÚµ¥»úģʽÏ£¬solr.xmlÊÇÔÚ$SOLR_HOMEĿ¼ÖУ¬Ä¬ÈÏÊÇ(server/solr)£¬¶øÔÚSolrCloudÔËÐÐʱ£¬ÊÇÔÚZookeeperÖÐÕÒµ½¡£Ä¬ÈϵÄsolr.xmlÎļþÈçÏ£º

<?xml version="1.0" encoding="UTF-8" ?>
<solr>
<solrcloud>
<str name="host">${host:}</str>
<int name="hostPort">${jetty.port:8983}</int>
<str name="hostContext">${hostContext:solr}</str>
<bool name="genericCoreNodeNames"> ${genericCoreNodeNames:true}</bool>
<int name="zkClientTimeout"> ${zkClientTimeout:30000}</int>
<int name="distribUpdateSoTimeout" >${distribUpdateSoTimeout:600000}</int>
<int name="distribUpdateConnTimeout"> ${distribUpdateConnTimeout:60000}</int>
<str name="zkCredentialsProvider">
${zkCredentialsProvider:org.apache.solr.common. cloud.DefaultZkCredentialsProvider}
</str>
<str name="zkACLProvider">${zkACLProvider:org.apache .solr.common.cloud.DefaultZkACLProvider}</str>
</solrcloud>
<shardHandlerFactory name="shardHandlerFactory"
class="HttpShardHandlerFactory">
<int name="socketTimeout">${socketTimeout:600000}</int>
<int name="connTimeout">${connTimeout:60000}</int>
</shardHandlerFactory>
</solr>

ÅäÖÃÖÐÒÑÓÐһЩ¹ØÓÚSolrCloudµÄÅäÖ㬵«ÊÇÕâ²¢²»Òâζ×ÅÆô¶¯Ê±ÊÇSolrCloudģʽ£¬ÐèÒªÔÚÆô¶¯Ê±Ö¸¶¨²ÎÊý-DzkHost»ò-DzkRun²ÅÊÇÔÚSolrCloudģʽÏÂÔËÐС£

1.<solr>ÔªËØ£¬¸ÃÔªËØÊÇsolr.xmlÎļþµÄ¸ùÔªËØ£¬²»¿ÉÒÔÖ¸¶¨ÊôÐÔ¡£

2. <solrcloud>ÔªËØ£¬¸ÃÔªËØ¶¨ÒåÁËÓëSolrCloudÏà¹ØµÄ²ÎÊý£º

distribUpdateConnTimeout£ºÓÃÓÚÉèÖü¯ÈºÄÚ²¿¸üеÄÁ¬½Ó³¬Ê±Ê±¼ä¡£

distribUpdateSoTimeout£ºÓÃÓÚÉèÖü¯ÈºÄÚ²¿¸üеÄsocketÁ¬½Ó³¬Ê±Ê±¼ä¡£

host£ºsolrÓÃÓÚ·ÃÎÊÄں˵ÄÖ÷»úºÅ¡£

hostContext£ºurlµÄÉÏÏÂÎÄ·¾¶¡£

hostPort£ºsolrÓÃÓÚ·ÃÎÊÄں˵Ķ˿ڡ£Ä¬ÈÏ${jetty.port:8983}£¬±íʾʹÓÃJettyÖж¨ÒåµÄsolr¶Ë¿Ú£¬Èç¹ûûÓж¨Ò壬¾ÍʹÓÃ8983¶Ë¿Ú¡£

leaderVoteWait£ºµ±SolrCloudÆô¶¯Ê±£¬¼Ù¶¨´æÔÚ䱨¸æµÄ½Úµãå´»úÁË£¬Ã¿¸öSolr½ÚµãµÈ´ýÕÒµ½Ë鯬µÄËùÓÐÒÑÖª¸±±¾µÄʱ¼ä¡£

leaderConflictResolveWait£ºµ±³¢ÊÔΪ·ÖƬѡÔñLeaderʱ£¬¸ÃÊôÐÔÉèÖÃÁ˸±±¾µÈ´ý²é¿´½â¾öµÄ³åͻ״̬ÐÅÏ¢µÄ×ʱ¼ä£¬ÔÚÖ´Ðйö¶¯ÖØÐÂÆô¶¯Ê±¿ÉÄܻᷢÉú״̬ÐÅÏ¢ÖеÄÁÙʱ³åÍ»£¬ÓÈÆäÊÇÔÚÖØÐÂÆô¶¯ÍйܼàÊÓÆ÷µÄ½Úµãʱ¡£

zkClientTimeout£ºÁ¬½ÓZookeeper·þÎñÆ÷µÄ³¬Ê±Ê±¼ä¡£

zkHost£ºzookeeperÖ÷»úµÄurl¡£

genericCoreNodeNames£ºÈç¹ûΪtrue£¬½ÚµãÃû³Æ²»ÊÇ»ùÓÚ½ÚµãµÄµØÖ·£¬¶øÊÇ»ùÓÚ±êʶÄں˵ÄͨÓÃÃû³Æ£¨Äں˱ðÃû£©¡£µ±Ò»Ì¨²»Í¬µÄ»úÆ÷½Ó¹Ü·þÎñÄÚºËʱ£¬¿ÉÒÔ¸üÒ×Àí½âËü¡£

zkCredentialsProvider&zkACLProvider£ºÓÃÓÚÉèÖÃZookeeper·ÃÎÊ¿ØÖÆ¡£

<logging>ÔªËØ£¬log¼Ç¼µÄһЩÅäÖãº

class£¬ÓÃÓڼǼµÄÀà¡£ÏàÓ¦µÄJARÎļþ±ØÐë¿ÉÓÃÓÚSolr£¬Ò²¿ÉÒÔͨ¹ýsolrconfig.xmlµÄ<lib>Ö¸ÁîʹÓá£

enabled£¬true/false£¬ÊÇ·ñÆô¶¯ÈÕÖ¾¼Ç¼

<logging><watcher>ÔªËØ£º

size£¬»º³åµÄÈÕ־ʼþÊý

threshold£¬ÈÕÖ¾¼¶±ð£¬ÈçDEBUG£¬WARN£¬INFOµÈ

<shardHandlerFactory>ÔªËØ£¬¿ÉÒÔ¶¨Òå×Ô¶¨Òå·ÖƬ´¦Àí³ÌÐò¡£

<shardHandlerFactory name=¡°ShardHandlerFactory¡± class=¡°qualified.class.name¡±>

ÓÉÓÚÊÇ×Ô¶¨Òå·ÖƬ´¦Àí³ÌÐò£¬ËùÒÔ£¬×ÓÔªËØÊÇÔÚʵÏÖÖÐÖ¸¶¨¡£

¶øSolrÌṩÁËÒ»¸öĬÈϺÍΨһµÄ·ÖƬ´¦Àí³ÌÐò¡ª¡ªHttpShardHandlerFactory£¬ÔÚÕâÖÖÇé¿öÏ£¬¿ÉÒÔÖ¸¶¨ÒÔÏÂ×ÓÔªËØ£º

socketTimeout£º¼¯ÈºÄÚ²éѯºÍ¹ÜÀíÇëÇóµÄ¶ÁÈ¡³¬Ê±¡£Ä¬ÈÏÖµÓëdistribUpdateSoTimeoutÖ¸¶¨µÄĬÈÏÖµÏàͬ¡£

connTimeout£ºÈº¼¯ÄÚ²éѯºÍ¹ÜÀíÇëÇóµÄÁ¬½Ó³¬Ê±£¬Ä¬ÈÏÖµÓëdistribUpdateConnTimeoutÖ¸¶¨µÄĬÈÏÖµÏàͬ¡£

urlScheme£ºÓÃÓÚ·Ö²¼Ê½ËÑË÷ÖÐʹÓõÄURL·½°¸

maxConnectionsPerHost£ºÃ¿Ì¨Ö÷»úÔÊÐíµÄ×î´óÁ¬½ÓÊý£¬Ä¬ÈÏΪ10000.

maxConnections£ºÔÊÐí×î´óµÄ×ÜÁ¬½ÓÊý¡£Ä¬ÈÏΪ10000

corePoolSize£ºÏ̳߳طþÎñÇëÇóµÄ³õʼÄں˴óС£¬Ä¬ÈÏΪ0

maximumPoolSize£º·þÎñÇëÇóµÄÏ̳߳صÄ×î´óÊý£¬Ä¬ÈÏÎÞÏÞÖÆ¡£

maxThreadIdleTime£ºÔÚ±»kill֮ǰ£¬¿ÕÏÐÏß³ÌÔÚ¶ÓÁÐÖгÖÐø´æÔÚµÄʱ¼ä£¬ÒÔÃëΪµ¥Î»£¬Ä¬ÈÏΪ5Ãë¡£

sizeOfQueue£ºÈç¹ûÏ̳߳ØÊ¹Óú󱸶ÓÁУ¬ÔòʹÓÃÖ±½ÓÇл»µÄ×î´ó´óСÊǶàÉÙ£¬Ä¬ÈÏʹÓÃSynchronousQueue¡£

fairnessPolicy£ºÒ»¸ö²¼¶ûÖµ£¬ÓÃÓÚÅäÖÃÏ̳߳ØÊÇ·ñÓÐÀûÓÚÍÌÍÂÁ¿µÄ¹«Æ½ÐÔ£¬Ä¬ÈÏֵΪfalseÒÔÖ§³ÖÍÌÍÂÁ¿¡£

core.properties

core.propertiesÎļþÊÇÒ»¸ö¼òµ¥µÄJava PropertiesÎļþ£¬Ã¿Ò»ÐÐÖ»ÊÇÒ»¸ökey=value¶Ô£¬core.propertiesµÄλÖÿÉÒÔÊÇÔÚÄÚºËĿ¼µÄÈκÎλÖ㬵«ÊÇ£¬Ò»¸öÄÚºËĿ¼ÖУ¬Ö»»áʶ±ðĿ¼Éî¶È×îdzµÄÎļþ¡£ÈçÏ£º

ÉÏÃæµÄʾÀýÖУ¬Ö»»áö¾Ùµ½core1£¬¼´Ö»»áʶ±ðµÚÒ»¸öcore.propertiesÎļþ¡£Ò»°ãÇé¿ö¶¼ÊǰѸÃÎļþ·ÅÔÚÄں˵ĵÚÒ»¼¶Ä¿Â¼ÖС£

core.properties¿ÉÒÔΪ¿Õ£¬´´½¨ÄÚºËʱÉú³ÉµÄcore.properties»áÓÐÒ»¸ökv¶Ô£¬±íʾÄں˵ÄÃû³Æ¡£

core.propertiesÊôÐÔ£º

name£¬SolrCoreµÄÃû³Æ£¬ÔÚʹÓÃCoreAdminHandlerÔËÐÐÃüÁîʱ£¬½«Ê¹ÓôËÃû³ÆÀ´ÒýÓÃSolrCore¡£

config£¬¸ø¶¨Äں˵ĵÄÅäÖÃÎļþÃû¡£Ä¬ÈÏΪsolrconfig.xml¡£

schema£¬¸ø¶¨Äں˵ÄģʽÎļþÃû£¬Ä¬ÈÏΪschema.xml¡£

dataDir£¬Äں˵ÄÊý¾ÝĿ¼£¨´æ´¢Ë÷Òý£©£¬¾ø¶Ô·¾¶»òÏà¶ÔÓÚinstanceDirµÄ·¾¶¡£Ä¬ÈÏÖµÊÇdata

configSet£¬Èç¹ûÐèÒª£¬ÓÃÓÚÅäÖÃÄں˵ÄÒѶ¨ÒåÅäÖü¯µÄÃû³Æ¡£

properties£¬´ËÄں˵ÄÊôÐÔÎļþµÄÃû³Æ£¬¸ÃÖµ¿ÉÒÔÊǾø¶Ô·¾¶Ãû»òÏà¶ÔÓÚinstanceDirµÄ·¾¶¡£

transient£¬Èç¹ûΪtrue£¬ÔòÔÚSolrµ½´ïʱtransientCacheSize´óСʱ£¬unloadÄںˣ¬Èç¹ûδָ¶¨£¬ÄÇôÄں˻ᰴÕÕ×î½ü×îÉÙʹÓõÄ˳ÐòÀ´unload¡£ÔÚSolrCloud²»½¨Ò鿪Æô¡£

loadOnStartup£¬Èç¹ûΪtrue£¬ÔòÔÚSolrÆô¶¯Ê±½«»á¼ÓÔØÄںˣ¬Ä¬ÈÏΪtrue£¬ÔÚSolrCloudģʽϲ»½¨ÒéÉèÖÃΪfalse¡£

coreNodeName£¬½öÔÚSolrCloudÖÐʹÓã¬ÕâÊÇÍйܴ˸±±¾µÄ½ÚµãµÄΨһ±êʶ·û¡£Ä¬ÈÏÇé¿öÏ£¬coreNodeName»á×Ô¶¯Éú³É¡£ÏÔʽÉèÖøÃÊôÐÔ£¬¿ÉÒÔÔÊÐíÄãÊÖ¶¯·ÖÅäÐÂÄÚºËÒÔÌæ»»ÏÖÓеĸ±±¾¡£ÀýÈ磬ͨ¹ý´Ó¾ßÓÐÐÂÖ÷»úÃû»ò¶Ë¿ÚµÄмÆËã»úÉϵı¸·Ý½øÐлָ´À´Ìæ»»³öÏÖÓ²¼þ¹ÊÕϵļÆËã»úʱ£¬¿ÉÒÔʹÓá£

ulogDir£¬´ËÄں˵ĸüÐÂÈÕÖ¾µÄ¾ø¶Ô»òÏà¶ÔĿ¼¡££¨SolrCloudģʽÏ£©

shard£¬·ÖÅä´ËÄÚºËµÄ·ÖÆ¬¡££¨SolrCloudģʽÏ£©

collection£¬¸ÃÄÚºËËùÊô¼¯ºÏµÄÃû³Æ¡£

roles£¬SolrCloudµÄδÀ´²ÎÊý»òÓû§±ê¼Ç½Úµã¹©×Ô¼ºÊ¹Óõķ½·¨¡£

core.propertiesÎļþ¾ÍÊÇÓÃÓÚÖ¸¶¨ÊôÐÔ±äÁ¿µÄ¡£

solrconfig.xml

solrconfig.xmlÎļþÊÇÓ°Ïìsolr±¾ÉíµÄ²ÎÊý×î¶àµÄÅäÖÃÎļþ¡£

ÔÚÅäÖÃSolrʱ£¬Äã¿ÉÒÔʹÓÃsolrconfig.xml£¬Ò²¿ÉÒÔͨ¹ýConfig APIÀ´´´½¨"configuration overlays"£¨configoverlay.json£©À´ÖØÐ´solrconfig.xmlµÄÖµ¡£

solrconfig.xml¿ÉÒÔÅäÖõÄÖØÒª¹¦ÄÜÓУº

ÇëÇó´¦Àí³ÌÐò£¬´¦Àí¶ÔsolrµÄÇëÇó£¬ÀýÈçÏòË÷ÒýÌí¼ÓÎĵµµÄÇëÇó»ò·µ»Ø²éѯ½á¹ûµÄÇëÇó¡£

¼àÌýÆ÷£¬¡°¼àÌý¡±Ìض¨²éѯÏà¹ØÊ¼þµÄ¹ý³Ì£»¼àÌýÆ÷¿ÉÓÃÓÚ´¥·¢ÌØÊâ´úÂëµÄÖ´ÐУ¬ÀýÈçµ÷ÓÃһЩ³£¼û²éѯÀ´Ô¤ÈÈ»º´æ

Request DispatcherÓÃÓÚ¹ÜÀíHTTPͨÐÅ

Admin Web½çÃæ

Óë¸´ÖÆºÍ¸±±¾Ïà¹ØµÄ²ÎÊý£¬ÏêÇéÇë²é¿´https://lucene.apache.org/solr/guide/7_6 /config-api.html#config-api

ÏÂÃæÏêϸ½éÉÜsolrconfig.xmlµÄ¼¸¸ö²¿·Ö£º

DataDirºÍDirectoryFactory

ΪË÷ÒýÖ¸¶¨´æ´¢µÄλÖÃ

dataDir²ÎÊýÓÃÓÚÖ¸¶¨Ë÷ÒýÊý¾ÝµÄλÖã¬Ä¬ÈÏÇé¿öÏ£¬solr½«ÆäË÷ÒýÊý¾Ý´æ´¢ÔÚ/dataĿ¼ÖУ¬Èç¹ûÐèÒªÖ¸¶¨ÆäËûĿ¼ÓÃÓÚ´æ´¢Ë÷Òý£¬¿ÉÒÔÔÚcore.propertiesÖÐÅäÖÃdataDir£¬»òÔÚsolrconfig.xmlÖÐÅäÖÃ<dataDir>²ÎÊý¡£¿ÉÒÔʹÓþø¶Ô·¾¶»òÏà¶ÔÓÚSolr Äں˵ÄinstanceDir·¾¶ÃûÀ´Ö¸¶¨ÁíÒ»¸öĿ¼¡£

ΪË÷ÒýÖ¸¶¨DirectoryFactory£¬¼´Éú³ÉµÄĿ¼ÀàÐÍ

ĬÈÏÊÇsolr.NRTCachingDirectoryFactory£¬ÊÇ»ùÓÚÎļþϵͳ£¬²¢Éî¶ÈΪµ±Ç°JVMºÍƽ̨ѡÔñ×î¼ÑʵÏÖ¡£¿ÉÒÔͨ¹ýÇ¿ÖÆÖ¸¶¨Ò»¸öʵÏÖ»òÕßÊÇÅäÖÃÑ¡ÏîΪsolr.MMapDirectoryFactory

£¬solr.NIOFSDirectoryFactory»òsolr.SimpleFSDirectoryFactory¡£

È磺

<directoryFactory name="DirectoryFactory"
class="solr.MMapDirectoryFactory">
<bool name="preload">true</bool>
</directoryFactory>

»¹ÓÐÁ½Öֽϳ£Óõģ¬Ò»ÖÖÊÇorg.apache.solr.core.RAMDirectoryFactory£¬ËüÊÇ»ùÓÚÄÚ´æµÄ£¬²»ÊÊÓÃÓڳ־û¯ºÍ¸±±¾µÄ¡£ÁíÒ»ÖÖÊǽ«Ë÷Òý´æ´¢ÔÚHDFSÖУ¬ÐèҪʹÓÃsolr.HdfsDirectoryFactory¡£

Resource and Plugin Loading

Resource£º¿ÉÒÔͨ¹ýÅäÖÃÀ´µ÷ÓÃ×ÊÔ´£º´æ´¢ÔÚÍⲿµÄÎļþÊý¾Ý¡£

ÕâЩÊý¾Ý¿ÉÒÔÒÔÓëλÖÃÎ޹صķ½Ê½ÒýÓã¬ÈçÍ£Ö¹¹ýÂËÆ÷µÄÍ£ÓôÊÁÐ±í£¬Ñ§Ï°ÅÅÃûµÄ»úÆ÷ѧϰģÐ͵ȡ£

Plugin£º¿ÉÒÔÔÚsolrconfig.xmlÅäÖã¬ÊÇÒ»¸öJavaÀ࣬ͨ¹ý´ò°üÔÚ.jarÎļþÖС£Solr¸½´øÁËÐí¶àÄÚÖõIJå¼þ£¬Ò²¿ÉÒÔÅäÖÃʹÓÃ×Ô¶¨Òå²å¼þ¡£

×ÊÔ´ºÍ²å¼þ¿ÉÒÔ´æ´¢ÔÚ£º

ÔÚzookeeper·þÎñÆ÷ÖеÄÒ»¸öcollectionµÄconfigset½ÚµãÏ¡£

ÔÚsolr¿É·ÃÎʵÄÎļþϵͳÖС£

ÔÚsolrµÄBlob É̵ê

ÆäÖÐ1£¬3¶¼ÐèÒªÔÚSolrCloudģʽϲſÉÒÔʹÓá£

×ÊÔ´ºÍ²å¼þµÄ¼ÓÔØË³Ðò

ÔÚSolrCloudÏ£¬Ê×ÏÈÔÚZookeeperµÄcollectionµÄconfigset½ÚµãϲéÕÒÒª¼ÓÔØµÄ×ÊÔ´ºÍ²å¼þ¡£Èç¹ûÔÚÄÇÀïÕÒ²»µ½×ÊÔ´»ò²å¼þ£¬solr½«»ØÍ˵½´ÓÎļþϵͳÖмÓÔØ¡£

Èç¹ûÐèÒª´ÓBlod É̵ê¼ÓÔØ£¬ÐèÒª¶îÍâÅäÖã¬ÒòΪÓõÃÉÙ£¬´Ë´¦²»×÷½éÉÜ£¬ÓÐÐËȤµÄ¿ÉÒԲ鿴¹Ù·½Îĵµ¡£

ZookeeperÉϵÄConfigSet

×ÊÔ´ºÍ²å¼þ¿ÉÒÔ×÷ΪÅäÖü¯µÄÒ»²¿·ÖÉÏ´«µ½Zookeeper£¬¿ÉÒÔͨ¹ýConfigsets API»òbin/solr zk upload

Òª½«×ÊÔ´»ò²å¼þÉÏ´«µ½ÒÑ´æ´¢ÔÚZookeeperµÄÅäÖü¯£¬¿ÉÒÔʹÓÃbin/solr zk cp¡£

×¢Ò⣺ZookeeperµÄĬÈÏ´óСÊÇ1MB£¬Èç¹û´óÓÚ´ËÖµ£¬ÐèÒªÉèÖá£

ÔÚµ¥»úģʽÏ£¬µ±Òª²éÕÒ²å¼þ»ò×ÊԴʱ£¬Solr×ÊÔ´¼ÓÔØÆ÷½«Ê×ÏȲ鿴<instanceDir>/conf/Ŀ¼ÏµÄÄÚÈÝ£¬Èç¹ûÕÒ²»µ½£¬¾Í»á×ñÑ­libÖ¸Áî¡£

libÖ¸ÁÊ×ÏÈ»áÈÃ×ÊÔ´¼ÓÔØÆ÷²é¿´solr_home/libµÄÄÚÈÝ£¬È»ºóÔٲ鿴solrconfig.xmlÖÐlib²ÎÊýÖ¸¶¨µÄĿ¼¡£

×ܽ᣺<instanceDir>/conf/?>?solr_home/lib?>?solrconfig.xmlÖÐlib²ÎÊýÖ¸¶¨µÄĿ¼

solrconfig.xml¹ØÓÚlib²ÎÊýµÄÀý×Ó£¬ÆäÖУ¬Èç¹û´æÔÚÒÀÀµ¹ØÏµ£¬ÐèÒª°Ñ×îµÍ¼¶±ðµÄÒÀÀµÁÐÔÚÇ°Ãæ

<lib dir="../../../contrib/extraction/lib" regex=".*\.jar" />
<lib dir="../../../dist/" regex="solr-cell-\d.*\.jar" />
<lib dir="../../../contrib/clustering/lib/" regex=".*\.jar" />
<lib dir="../../../dist/" regex="solr-clustering-\d.*\.jar" />
<lib dir="../../../contrib/langid/lib/" regex=".*\.jar" />
<lib dir="../../../dist/" regex="solr-langid-\d.*\.jar" />
<lib dir="../../../contrib/velocity/lib" regex=".*\.jar" />
<lib dir="../../../dist/" regex="solr-velocity-\d.*\.jar" />

SolrConfigÖеÄSchema Factory¶¨Òå

SolrµÄSchema API¿ÉÒÔʹԶ³Ì¿Í»§¶ËÄܹ»Í¨¹ýREST½Ó¿Ú·ÃÎÊSchemaÐÅÏ¢½øÐÐSchemaÐ޸ġ£

managed-schema¸ÅÀÀ£¨schema.xml£©

managed-schema¶¨ÒåÁËË÷Òý¿âµÄÊý¾ÝÀàÐÍ£¬Í¬Ê±Ö¸Ã÷ij¸öÀàÐ͵Ä×Ö¶ÎÊDz»ÊÇÒª½øÐÐË÷Òý£¬ÊDz»ÊÇÒª½øÐб£´æµ½Ë÷Òý¿âÀïµÈµÈ¡£ÀàËÆ´«Í³Êý¾Ý¿âµÄSchema¡£¾É°æ±¾£¨²»Öª´ÓÄÄÒ»°æ±¾¿ªÊ¼£©ÓõÄÊÇschema.xml£¬ÏÖÔÚа汾µÄÊÇÓÃmanaged-schema£¬ÎļþλÓÚÄÚºËĿ¼µÄconfÎļþ¼ÐÖС£¿ÉÒÔͨ¹ýsolr admin uiÄں˵Äschema²é¿´¡£solrµÄschemaµÄ×÷ÓÃÓëlucene¶¨ÒåDocumentµÄfieldType×÷ÓÃÀàËÆ¡£

SolrĬÈÏʹÓÃÍйÜģʽ

µ±solrconfig.xmlÖеÄ<schemaFactory>ÎļþûÓÐÏÔʽÉùÃ÷ʱ£¬SolrÒþʽʹÓÃManagedIndexSchemaFactory£¬Ä¬ÈÏ¿ªÆô¡°mutable¡±£¬ÇÒ°ÑschemaµÄÐÅÏ¢±£´æµ½managed-schemaÎļþÖС£

<schemaFactory class="ManagedIndexSchemaFactory">
<!--¿ØÖÆÊÇ·ñ¿ÉÒÔ¶ÔSchemaÊý¾Ý½øÐиü¸Ä£¬±ØÐ뽫ÆäÉèÖÃΪtrue²ÅÄÜÔÊÐíʹÓÃschema api½øÐб༭-->
<bool name="mutable">true</bool>
<!--¿ÉÑ¡²ÎÊý£¬Ä¬ÈÏΪ¡°maanged-schema¡±£¬ÎªÄ£Ê½Îļþ¶¨ÒåÒ»¸öÐÂÃû³Æ£¬¸ÃÃû³Æ¿ÉÒÔ¶¨Òå³ýschema.xmlÖ®ÍâµÄÈκÎÃû³Æ-->
<str name="managedSchemaResourceName">managed-schema</str>
</schemaFactory>

ʹÓÃÉÏÃæÏÔʾµÄĬÈÏÅäÖ㬿ÉÒÔ¸ù¾ÝÐèҪʹÓÃSchema APIÐ޸ļܹ¹¡£

¾­µäschema.xml

¹ÜÀíģʽµÄÁíÒ»ÖÖ×ö·¨ÊÇÏÔʾÅäÖÃClassicIndexSchemaFactory£¬ClassicIndexSchemaFactoryÐèҪʹÓÃschema.xmlÎļþ£¬ÇÒ²»ÔÊÐíÔÚÔËÐÐʱ¶Ôschema½øÐÐÈκαà³Ì¸ü¸Ä¡£schema.xml±ØÐëÊÖ¶¯±à¼­²¢ÇÒ½öÔÚ¼ÓÔØ¼¯ºÏʱ²Å»á¼ÓÔØ¸ÃÎļþ

<schemaFactory class=¡°ClassicIndexSchemaFactory¡±/>

Á½ÖÖģʽµÄÇл»

Ò»£¬´Óschema.xmlµ½ÍйÜģʽ£º

°ÑClassicIndexSchemaFactory¸ÄΪManagedIndexSchemaFactory£¬²¢°Ñ¡°mutable¡±ÉèÖÃΪtrue£¬µ±ÖØÐÂÆô¶¯solrʱ²¢¼ì²âµ½schema.xmlʱ£¬µ«ÊÇmanagedSchemaResourcenameÎļþ²»´æÔÚʱ£¬ÏÖÔÚµÄschema.xmlÎļþ½«ÖØÃüÃûΪschema.xml.bak²¢ÇÒÄÚÈݽ«ÖØÐÂдÈëmanaged-schemaÎļþ¡£

¶þ£¬´ÓÍйÜģʽµ½schema.xml£º

1£¬½«managed-schemaÖØÃüÃûΪschema.xml£»2£¬ÐÞ¸ÄschemaFactoryÀࣻ3£¬ÖØÐ¼ÓÔØÄںˡ£

schemaµÄÏàÓ¦ÅäÖÃÇë²é¿´¹Ù·½Îĵµ

schema.xmlÖеÄ×Ö¶ÎÀàÐͶ¨Òå

×Ö¶ÎÀàÐͶ¨Òå·ÖÎö·¢ÉúÔÚË÷ÒýÎĵµ»ò½«²éѯ·¢Ë͵½Ë÷Òýʱ¡£

×Ö¶ÎÀàÐͶ¨Òå¿ÉÒÔ°üÀ¨ËÄÖÖÀàÐ͵ÄÐÅÏ¢£º

×Ö¶ÎÀàÐ͵ÄÃû³Æ£¨±ØÐ裩

ʵÏÖÀàÃû³Æ£¨±ØÐ裩

Èç¹û×Ö¶ÎÊÇTextField£¬ÐèÒª¹ØÓÚ×Ö¶ÎÀàÐ͵Ä×ֶηÖÎöÃèÊö

×Ö¶ÎÀàÐÍÊôÐÔ£¬¸ù¾Ý²»Í¬µÄʵÏÖÀ࣬ijЩÊôÐÔÊDZØÐëµÄ

ÑùÀý£º

<fieldType name="text_general" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" />
<!-- in this example, we will only use synonyms at query time
<filter class="solr.SynonymFilterFactory" synonyms="index_synonyms.txt" ignoreCase="true" expand="false"/>
-->
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" />
<filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>

ÆäÖС°solr¡±Õâ¸ö×Ö·û´®±íʾorg.apache.solr.schema»òorg.apache.solr.analysis¡£

×Ö¶ÎÀàÐÍÊôÐÔ

×Ö¶ÎÀàÐÍclassÈ·¶¨×Ö¶ÎÀàÐ͵Ĵó¶àÊýÐÐΪ£¬µ«ÓÐһЩ¿ÉÑ¡ÊôÐÔ¿ÉÒÔ×Ô¶¨Òå¡£ÈçÏ£¬sortMissingLastºÍomitNormsΪ¿ÉÑ¡ÊôÐÔ£º

<fieldType name="date" class="solr.DatePointField"
sortMissingLast="true" omitNorms="true"/>

¿ÉÒÔΪ¸ø¶¨×Ö¶ÎÀàÐÍÖ¸¶¨µÄÊôÐÔΪ·ÖÈý´óÀࣺ

ÌØ¶¨ÓÚ×Ö¶ÎÀàÐ͵ÄÀàÐÍÊôÐÔ

³£¹æÊôÐÔ£¬solrÖ§³ÖÈκÎ×Ö¶ÎÀàÐÍ

×Ö¶ÎĬÈÏÊôÐÔ£¬¿ÉÒÔÔÚ×Ö¶ÎÀàÐÍÉÏÖ¸¶¨£¬½«ÓÉʹÓôËÀàÐ͵Ä×ֶζø²»ÊÇĬÈÏÐÐΪ¼Ì³Ð

³£¹æÊôÐÔ

name£ºfieldTypeµÄÃû³Æ¡£

class£ºÓÃÓÚ´æ´¢ºÍË÷Òý´ËÀàÐÍÊý¾ÝµÄÀàÃû¡£

positionIncreamentGap£º¶ÔÓÚ¶àÖµ×ֶΣ¬Ö¸¶¨¶à¸öÖµÖ®¼äµÄ¾àÀ룬ÒÔ·ÀÖ¹ÐéÄâ¶ÌÓïÆ¥Åä¡£

autoGeneratePhraseQueries£º¶ÔÓÚÎı¾×ֶΣ¬Èç¹ûtrue£¬Solr×Ô¶¯ÎªÏàÁÚÊõÓïÉú³É¶ÌÓï²éѯ¡£Èç¹ûΪfalse£¬ÊõÓï±ØÐëÓÃË«ÒýºÅÀ¨ÆðÀ´×÷Ϊ¶ÌÓï¡£

synonymQueryStyle£ºÓÃÓÚ×éºÏÖØµþ²éѯÏ¼´Í¬Òå´Ê£©µÄ·ÖÀàµÄ²éѯ¡£

×Ö¶ÎĬÈÏÊôÐÔ

ÕâЩÊôÐÔ¿ÉÒÔÔÚ×Ö¶ÎÀàÐÍÉÏÖ¸¶¨£¬Ò²¿ÉÒÔÔÚµ¥¸ö×Ö¶ÎÉÏÖ¸¶¨£¬ÒÔ¸²¸Ç×Ö¶ÎÀàÐ͵ÄĬÈÏÖµ¡£

SolrÃüÁî

Æô¶¯Í£Ö¹Solr

#ºǫ́Æô¶¯Solr·þÎñÆ÷£¬Ä¬È϶˿Ú8983£¬Ä¬ÈÏÖ÷Ŀ¼server/solr
solr start
#ǰ̨Æô¶¯Solr·þÎñÆ÷
solr start -f
#SolrCloudģʽÆô¶¯Solr£¬Èç¹û-zûÓÐÖ¸Ã÷»òZK_HOSTûÓÐÔÚsolr.in.cmdÖж¨Ò壬ĬÈÏʹÓÃÒ»¸ö¶Ë¿ÚΪSolr port+1000µÄǶÈëʽZookeeperʵÀý¡£
solr start -c »òÕß solr start -cloud
#Ö¸¶¨Solr·þÎñÆ÷ʵÀýµÄhostÃû
solr start -h mysolr
#Ö¸¶¨solr http¼àÌý¶Ë¿Ú£¬
solr start -p 8984
#Ö¸Ã÷Solr·þÎñµÄĿ¼£¬Ä¬ÈÏÊÇserver
solr start -d dir/
#Ö¸Ã÷ZookeeperµÄHost
solr start -z 192.168.1.198:22222
#Ö¸¶¨ÄÚ´æµÄ×î´óºÍ×îСʹÓÃÁ¿¡£Èç-m 4g´ú±í-Xms4g -Xmx4g
solr start -m 4g
#Ö¸¶¨Ö÷Ŀ¼·¾¶
solr start -s evendir/
#Ö¸¶¨Ë÷Òý´æ´¢Â·¾¶
solr start -t dir/
#Í£Ö¹solr·þÎñÆ÷
solr stop -p port
#Í£Ö¹ËùÓÐsolr·þÎñÆ÷
solr stop -all

´´½¨ÄÚºË

#´´½¨ÄÚºË
solr create -c corename
#Ö¸¶¨ÅäÖÃÎļþĿ¼
solr create -c corename -d confdir/
#Ö¸¶¨solr·þÎñÆ÷µÄ¼àÌý¶Ë¿Ú
solr create -c corename -p 8983
#Ö§³ÖÏêϸÊä³ö¼¶±ð
solr create -c corename -v info

ɾ³ýÄÚºË

#ɾ³ýÄÚºË
solr delete -c corename
#ɾ³ýÄÚºËʱ°ÑZookeeperÉϵÄÅäÖÃÒ²Ò»Æðɾ³ý£¬²¼¶ûÀàÐÍ£¬Ä¬ÈÏΪtrue
solr delete -c corename -deleteConfig 0
#ɾ³ýÖ¸¶¨¶Ë¿ÚµÄÄںˣ¬Èç¹ûûÓÐÖ¸¶¨£¬Ôò»áËÑË÷±¾µØÏµÍ³ÕýÔÚÔËÐеÄsolrʵÀý£¬ÓõÚÒ»¸öÕÒµ½µÄʵÀýµÄ¶Ë¿Ú
solr delete -c corename -p 8985
#´òÓ¡ÏêϸÐÅÏ¢
solr delete -c corename -v info

SolrʾÀý

ÏÂÃæÒÔÒ»¸ö΢²©ËÑË÷×÷ΪʾÀýÀ´Á˽âÈçºÎʹÓÃSolr¡£

Ò»£¬ÃæÏòËÑË÷µÄÄÚÈݱíʾ

ÏÂÃæÊÇÐé¹¹µÄÒ»¶Î΢²©¡£

ÔÚSolrË÷ÒýÖУ¬Ã¿¸öÎĵµÓÉ×Ö¶Î×é³É£¬Ã¿¸ö×Ö¶ÎÓµÓоßÌåµÄÀàÐÍ£¬×Ö¶ÎÀàÐ;ö¶¨ÁËÎĵµ½«Èç¹û±»´æ´¢¡¢ËÑË÷Óë·ÖÎö¡£ÔÚÉϱíÖУ¬Î¢²©ÎĵµÓÐ8¸ö×ֶΣ¬µ«ÊÇ£¬´ÓËÑË÷½Ç¶ÈÀ´ËµÓû§²¢²»»áʹÓÃËùÓеÄÕâЩ×Ö¶ÎÀ´Ñ°ÕÒ΢²©¡£ÏÖÔÚ¼ÙÉ裬Óû§¿ÉÄÜ»áÓõ½screen_name¡¢type¡¢timestamp¡¢langºÍtextÕâЩ×Ö¶ÎÀ´ËÑË÷΢²©£¬ÀýÈ磬һ¸öÓû§¿ÉÄÜÏëÒª²é¿´Ìض¨Óû§£¨screen_name£©ÔÚÌØ¶¨Ê±¼ä£¨timestamp£©ÒÔºóµÄËùÓÐÖÐÎÄ£¨lang£©Î¢²©£¨text£©¡£

ʵ¼ÊÓ¦ÓÃÒ²¿ÉÒÔË÷ÒýËùÓеÄ×ֶΣ¬µ«ÊÇ£¬ÔÚÒ»¸öǧÍò¼¶±ðÎĵµÓë¸ß²éѯÁ¿µÄ´ó¹æÄ£ÏµÍ³ÖУ¬Èç¹û¶ÔһЩûÓбØÒªµÄ×Ö¶ÎÒ²Ò»ÆðË÷Òý£¬»áÔö¼ÓË÷ÒýµÄÌå»ý£¬Ó°Ïì²éѯµÄЧÂÊ¡£Èçid£¬user_idÕâЩϵͳÄÚ²¿¶¨ÒåµÄ×ֶΣ¬Óû§ÊDz»»áÓõ½µÄ£¬Èçfavorites_countÕâ¸ö±íʾ·ÛË¿ÊýÁ¿µÄ×ֶΣ¬Óû§ÔÚ²éѯʱһ°ãÒ²²»»á¹Ø×¢£¬ËùÒÔ¶¼¿ÉÒÔ²»¼ÓÈëµ½Ë÷ÒýÖС£

¶þ£¬SolrË÷Òý¹¹½¨¸ÅÀÀ

´Óºê¹Û²ãÃæ¿´£¬SolrµÄË÷Òý¹¹½¨¿É·Ö½âΪÈý¸öÖ÷ÒªÈÎÎñ£º

½«Îĵµ´Óԭʼ¸ñʽת»»³ÉSolrÖ§³ÖµÄ¸ñʽ£¬ÀýÈçXML»òJSON

Ñ¡ÔñÒ»ÖÖ½Ó¿Ú·½·¨£¬Í¨³£Ê¹ÓÃHTTP POST£¬½«ÎĵµÌí¼Óµ½Solr

ÔÚË÷ÒýÖУ¬Í¨¹ýÅäÖÃSolr£¬¶ÔÎĵµµÄÎı¾½øÐÐת»»¡£

ÈçÏÂͼËùʾ£º

ͨ¹ýHTTP POST·½Ê½°ÑXML¸ñʽµÄÄÚÈÝ·¢Ë͵½SolrÎĵµ¸üзþÎñ£¬Îĵµ¸üзþÎñÖ÷ÒªÊÇÓÃÓÚÑéÖ¤ÎĵµÖÐÿ¸ö×ֶεÄÄÚÈÝ£¬Ö®ºó½øÈëÎı¾·ÖÎö½×¶Î¡£Ã¿¸ö×ֶξ­¹ý·ÖÎöºóµÄ½á¹ûÎı¾½«±»Ìí¼Óµ½Ë÷ÒýÖУ¬ÕâÑùÎĵµ¾Í¿ÉÒÔÓÃÓÚËÑË÷ÁË¡£

ʾÀý΢²©µÄXML¸ñʽ£º

<!--add¸æËßSolrÒª´´½¨Ë÷Òý-->
<add>
<!--doc±íʾÎĵµ£¬¿ÉÒÔÌí¼Ó¶à¸ödoc-->
<doc>
<!--ÎĵµµÄ×ֶΣ¬ÓÉnameºÍvalue×é³É-->
<field name="id">1</field>
<field name="screen_name">@even</field>
<field name="type">post</field>
<field name="timestamp">2019-01-22T15:22:00Z</field>
<field name="lang">cn</field>
<field name="user_id">3541564535</field>
<field name="favorites_count">3511321</field>
<field name="text"> </field>
</doc>
</add>

Èý£¬Éè¼Æ×Ô¼ºµÄSchema

Ë÷ÒýÖеÄÎĵµÄÚÈÝÓÐÄÄЩ£¿

ÿ¸öÎĵµÈçºÎ×öµ½Î¨Ò»È·¶¨£¿

Óû§»áËÑË÷ÎĵµÖеÄÄÄЩ×ֶΣ¿

ÔÚËÑË÷½á¹ûÖÐÓ¦¸ÃÏòÓû§ÏÔʾÄÄЩ×ֶΣ¿

Õë¶ÔÌØ¶¨µÄËÑË÷Ó¦Óã¬ÏÂÃæÐèÒªÉè¼ÆÌØ¶¨µÄschema¡£

ÎĵµÁ£¶È

schemaµÄÉè¼Æ¹ý³Ìʵ¼ÊÊÇÈ·¶¨ÎĵµÈçºÎ±íÕ÷ΪSolrË÷ÒýµÄ¹ý³Ì¡£

¾ÙÀý£º

µ±°ÑÒ»¶ÎÎÄ×Ö×÷ΪÎĵµÊ±£¬ÊäÈë×Ö²éѯ£¬µÃµ½µÄ½á¹ûÊÇÕâ¶ÎÎÄ×Ö£»µ±°ÑÒ»¸öÊé¼®×÷ΪÎĵµÊ±£¬ÊäÈëÊé¼®ÄÚµÄÒ»¶ÎÎÄ×Ö£¬»á·µ»ØÕû¸öÊé¼®£»µ±Ê¹ÓÃÊé¼®ÖеÄÒ»¸öÕ½Ú×÷ΪÎĵµÊ±£¬·µ»ØµÄ½á¹û¾ÍÊÇ´ËÕ½ÚÄÚÈÝ¡£

ÉÏͼÖУ¬ÒÔÕ½ÚΪÎĵµ£¬¾ÍÊÇÎļþÁ£¶Èϸ£»ÒÔÕû±¾Ê鼮ΪÎĵµ£¬¾ÍÊÇÎļþÁ£¶È´Ö¡£Í¨³£Çé¿öÏ£¬ÎļþÁ£¶ÈϸµÄ£¬ËÑË÷³öÀ´µÄ½á¹û¾Í»áºÜ¶à£¬ÎļþÁ£¶È´ÖµÄ£¬·µ»ØµÄ½á¹û¾Í»áºÜÉÙ¡£Òò´Ë£¬ÐèÒªÎÒÃǸù¾ÝÓû§µÄÐèÇóÀ´È·¶¨ÎļþÁ£¶È£¬schema¾ÍÊÇÓÃÓÚÈ·¶¨Îĵµ±íÕ÷ΪSolrË÷Òý¡£

Ψһ¼ü

Ò»µ©È·¶¨ÁË´ýË÷ÒýµÄÎĵµ¹¹³É£¬¾ÍÐèҪȷ¶¨ÈçºÎÔÚË÷ÒýÖÐΨһʶ±ðÿ¸öÎĵµ£¬Ï൱ÓÚÖ÷¼ü¡£Èç¹û°ÑÏàͬÖ÷¼üµÄÎĵµÌí¼Óµ½Ë÷Òý£¬Solr»áÓÃ×îеÄÎĵµ¸²¸ÇÒÑÔÚµÄÎĵµ¡£ÉÏÃæµÄ΢²©ËÑË÷Ó¦ÓÃÖ»£¬id¾ÍÊÇΨһ¼ü£¬Èç¹û»¹ÒªÇø±ðÊÇÄĸöÉ罻ýÌåµÄÄÚÈÝ£¬»¹ÐèÒªÔÚidǰ¼ÓÉÏǰ׺ÒÔ±ãÇø·Ö¡£

Ë÷Òý×Ö¶Î

È·¶¨ÁËË÷ÒýÎĵµµÄ¹¹³ÉÒÔ¼°ÎĵµÎ¨Ò»Ê¶±ð·ûºó£¬½ÓÏÂÀ´È·¶¨ÎĵµÖеÄË÷Òý×ֶΡ£Ë÷Òý×ֶΣ¬Æäʵ¾ÍÊÇÓû§¿ÉÄÜÊäÈëµÄ¹Ø¼ü×Ö¡£Õý³£Çé¿öÏ£¬Èç¹ûÓû§ÐèÒªËÑË÷ijһƪÊé¼®£¬Ò»°ã»áÊäÈëÊéÃûºÍ×÷Õߣ¬ÕâÀïÊéÃûºÍ×÷Õ߾ͿÉÒÔ×÷ΪË÷Òý×ֶΡ£¶øÊé¼®Öеı༭µÄÃû×Ö£¬Ò»°ãÓû§ÊDz»»á×÷Ϊ¹Ø¼ü×ÖËÑË÷µÄ£¬Òò´Ë¿ÉÒÔ²»Ê¹Óñ༭µÄÃû×Ö×÷ΪË÷Òý×ֶΡ£

Ë÷Òý×ֶεÄÑ¡ÔñÐèÒª¸ù¾Ý¾ßÌåµÄÒµÎñ³¡¾°ÒÔ¼°Óû§ÐèÇóÀ´È·¶¨¡£

´æ´¢×Ö¶Î

´æ´¢×Ö¶ÎÊÇÖ¸ÄÇЩÐèÒªÏÔʾÔÚËÑË÷½á¹ûµÄÄÚÈÝ×ֶΡ£µ±Óû§ÏëÒªÔÚËÑË÷½á¹ûÖÐÏÔʾijЩ×ֶΣ¬µ«ÓÖ²»Ïëͨ¹ýÕâЩ×Ö¶ÎÀ´½øÐÐËÑË÷£¬È磬һ±¾Êé¼®µÄ±à¼­£¬Õý³£Çé¿öÏÂÓû§ÊDz»»áÓñ༭Ãû×ÖÀ´ËÑË÷Êé¼®µÄ£¬µ«ÊÇ£¬ÔÚÏÔʾÊé¼®ÄÚÈÝʱ£¬ÐèÒªÏÔʾÊé¼®µÄ±à¼­¡£ÕâÖÖÇé¿ö£¬¾Í¿ÉÒÔ°ÑÊé¼®µÄ±à¼­Ãû×ÖÉèΪ´æ´¢×ֶΡ£Ò»¸ö×ֶοÉÒÔͬʱÊÇ´æ´¢×ֶκÍË÷Òý×ֶΡ£

Ë÷ÒýµÄ´óС»áÓ°Ïìµ½ËÑË÷µÄЧÂÊ£¬¶øË÷ÒýÖÐÿһ¸ö´æ´¢×ֶζ¼ÐèÒªÕ¼ÓôÅÅ̿ռ䣬CPUºÍI/O×ÊÔ´£¬Òò´Ë£¬ÔÚʹÓÃSolrʱ£¬ÐèÒª½÷É÷Ñ¡Ôñ´æ´¢×ֶΡ£

ÒÔÉÏÊÇÉè¼ÆËÑË÷Ó¦ÓÃʱÐèÒªÈÏÕæË¼¿¼ËùÐèµÄ×Ö¶ÎÀàÐÍ¡£ÏÂÃæÀ´¿´Ò»ÏÂschema.xmlµÄ×ֶζ¨Òå¡£

ËÄ£¬ÔÚschema.xmlÖж¨Òå×Ö¶Î

schema.xmlÎĵµÓÉÈý¸öÖ÷Òª²¿·Ö×é³É£º

1£¬ <fields>ÔªËØ°üº¬<field>ºÍ<dynamicFiedl>£¬ÓÃÓÚ¶¨ÒåÎĵµµÄ»ù±¾½á¹¹¡£

2£¬ÆäËûÔªËØ£¬Èç<uniqueKey>ºÍ<copyField>,λÓÚfieldÔªËØÖ®ºó¡£

3£¬<types>ÔªËØÏµÄ×Ö¶ÎÀàÐͰüÀ¨SolrÄܹ»´¦ÀíµÄÈÕÆÚ¡¢Êý×ÖºÍÎı¾×ֶΡ£

<?xml version="1.0" encoding="UTF-8"?>
<schema name="default-config" version="1.6">
<fields>
<!--¸Ã×Ö¶ÎÊÇË÷ÒýÖÐÎĵµµÄΨһʶ±ð·û-->
<field name="id" type="string" indexed="true" stored="true" required="true"/>
<field name="screen_name" type="string" indexed="true" stored="true"/>
<field name="type" type="string" indexed="true" stored="true"/>
<field name="timestamp" type="string" indexed="true" stored="true"/>
<field name="lang" type="string" indexed="true" stored="true"/>
<!--¸Ã×Ö¶ÎË÷ÒýÊÇΪÁËÅÅÐò£¬´æ´¢ÊÇΪÁËÏÔʾ-->
<field name="favorites_count" type="int" indexed="true" stored="true"/>
<!--¸Ã×Ö¶ÎʹÓÃ×Ô¶¨ÒåµÄÀàÐͽøÐзÖÎö-->
<field name="text" type="text_microblog" indexed="true" stored="true"/>
</fields>
</schema>

4£¬ÉèÖÃΨһ¼ü×ֶΣ¬Î¨Ò»¼ü×Ö¶ÎӦʹÓÃ×Ö·û´®ÀàÐÍ»òÆäËû»ù±¾×Ö¶ÎÀàÐÍ¡£

<uniqueKey>id</uniqueKey>

Î壬½á¹¹»¯·ÇÎı¾×Ö¶ÎÀàÐÍ

ʾÀýÖгýÁËÎı¾Í⣬ÆäËû×ֶζ¼ÊÇSolr³£ÓõÄ×Ö¶ÎÀàÐÍ£¬ÏÂÃæ¶ÔÕâЩ³£ÓõÄ×Ö¶ÎÀàÐͽøÐн²½â¡£

Solr×î³£ÓõÄ×Ö¶ÎÀàÐ͵ÄÀàͼ£º

1£¬×Ö·û´®×Ö¶Î

Solr¶ÔÓÚһЩ²»ÐèÒª±ä¸üµÄÖµÌṩÁËstring×Ö¶ÎÀàÐÍ¡£string×Ö¶ÎÀàÐÍÔÚschema.xmlÖе͍Ò壺

<fieldType name="string" class="solr.StrField" sortMissingLast="true" docValues="true" />

ËüʹÓÃÁËsolr.StrFieldÀà¡£Èç¹û°ÑË÷Òý×Ö¶ÎÉèÖÃΪ×Ö·û´®ÀàÐÍ£¬Solr»á°Ñ×ֶεÄȡֵ´æ´¢ÔÚË÷ÒýÖУ¬²¢×÷Ϊ²»±äµÄ³Ö¾ÃË÷Òý¡£²éѯʱÐèÒª´«µÝ׼ȷֵ²ÅÄÜÆ¥Åä³ö½á¹û¡£¶ÔÓÚһЩ¹Ì¶¨²»±äµÄÖµ£¬ÈçÀàÐͺÍÕ˺ÅÒ»°ã¶¼ÊÇÉèÖÃÁ˾Ͳ»»á±ä£¬¿ÉÒÔʹÓÃ×Ö·û´®ÀàÐÍ¡£¸úJavaÖжÔStringµÄ¶¨ÒåÀàËÆ£¬¼´Èç¹û×Ö·û²»±ä£¬Ê¹ÓÃstring

2£¬ÈÕÆÚ×Ö¶Î

SolrÌṩÁËÒ»¸öÓÅ»¯µÄÄÚÖÃ<fieldType>£¬tdateÀàÐÍ£º

<fieldType name="tdate" class="solr.TrieDateField" omitNorms="true" precisionStep="6" positionIncrementGap="0"/>

ͨ³£Çé¿öÏ£¬SolrĬÈϲÉÓÃISO-8601ÈÕÆÚ/ʱ¼ä¸ñʽ(YYYY-MM-DDTHH:MM:SSZ)£¬Èç¹ûÏòSolrÌá½»ÆäËûÈÕÆÚ¸ñʽ£¬´´½¨Ë÷Òýʱ»áµÃµ½ÑéÖ¤´íÎóÐÅÏ¢¡£

ÈÕÆÚÁ£¶È

ÈÕÆÚµÄÁ£¶ÈÒ²ÊÇ¿ÉÒÔÈ·Èϵġ£Èç¹ûÓû§Ö»Ï£Íû°´Ê±ÌìÀ´²éѯ£¬¾Í²»ÐèÒª¶ÔÈÕÆÚË÷Òý¾«È·µ½Ãë»òºÁÃ룬Èç¹ûÊǰ´ÈÕÆÚ¶ÔÎĵµÅÅÐò£¬ÄÇôСʱ¼¶±ðµÄÁ£¶È¾Í²»ÐèÒª¡£¾ÙÀý£¬µ±Ë÷Òýʱ£¬ÈÕÆÚ°´Ð¡Ê±¼¶±ðµÄÁ£¶È£¬Ó¦µ±ÔÚÌá½»XMLÎĵµÊ±ÉèÖã¬ÔÚvalueºó¼ÓÉÏ/HOUE¡£

<field name="timestamp">2019-01-22T15:22:00Z/HOUR</field>

ÉÏÃæµÄʾÀýµÈ¼ÛÓÚ2019-01-22T15:00:00Z¡£Solr»¹Ö§³ÖNOW¹Ø¼ü×Ö£¬±íʾµ±Ç°ÏµÍ³Ê±¼ä¡£Í¨¹ýÊýѧÔËËã¿ÉÒÔ¶ÔÈÕÆÚ¼ÆËã¡£ÈçNOW/DAY±íʾµ±Ç°ÈÕµÄÎçÒ¹£¬NOW/DAY+1DAY±íʾÃ÷ÌìµÄÎçÒ¹¡£

3£¬ÊýÖµ×Ö¶Î

SolrµÄint×Ö¶ÎÀàÐͶ¨ÒåÈçÏ£º

<fieldType name="int" class="solr.TrieintField" precisionStep="0" positionIncrementGap="0"/>

ÓÉÓÚĬÈϲ»ÐèÒªÔÚint×ֶνøÐÐÇø¼ä²éѯ£¬ËùÒÔÉ趨precisionStep=¡°0¡±¡£

Áù£¬·¢ËÍÎĵµµ½Solr½øÐÐË÷Òý

ʹÓÃbin/post½Å±¾À´·¢ËÍÎĵµµ½Solr

°ÑÉÏÃæµÄʾÀý΢²©ÄÚÈÝÁí´æÎªÒ»¸öxmlÎļþ£¬È»ºóÊäÈëÃüÁ

post -c ÄÚºËÃû xmlÎļþ

½á¹û£º

responseÊÇÏìÓ¦Êý¾Ý£¬numFound±íʾƥÅäµÄÊýÁ¿¡£

SolrJ¿Í»§¶Ë¿â

SolrJÊÇÒ»¸öSolrÏîÄ¿ÌṩµÄ»ùÓÚJavaµÄ¿Í»§¶Ë¿â£¬ÓÃÓÚJava³ÌÐòÓëSolr·þÎñÆ÷½øÐÐͨÐÅ¡£ÏÂÃæÀ´¿´Ò»ÏÂÈçºÎ¼òµ¥Ê¹ÓÃSolrJ¡£

1£¬½¨Á¢Ò»¸ömavenÏîÄ¿£¬ÅäÖÃpom.xml

<dependency>
<groupId>org.apache.solr</groupId>
<artifactId>solr-solrj</artifactId>
<version>7.6.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/ org.apache.solr/solr-core -->
<dependency>
<groupId>org.apache.solr</groupId>
<artifactId>solr-core</artifactId>
<version>7.6.0</version>
</dependency>

2£¬Á¬½ÓSolr·þÎñÆ÷£º

String serverUrl = "http://localhost:8983/solr";
String coreName = "even";//´´½¨µÄÄÚºËÃû
HttpSolrClient solrClient = new HttpSolrClient.Builder(serverUrl). withConnectionTimeout(10000) .withSocketTimeout(60000).build();

3£¬Ê¹ÓÃSolrInputDocument¶ÔÏó¹¹ÔìÒ»¸öÒª±»Ë÷ÒýµÄÎĵµ

SolrInputDocument doc = new SolrInputDocument();
doc.addField("id", "2");
doc.addField("screen_name", "elina");
doc.addField("type", "post");
doc.addField("timestamp", "2019-01-22T15:22:00Z/HOUR");
doc.addField("lang", "cn");
doc.addField("user_id", "32134");
doc.addField("favorites_count", "6513515321");
doc.addField("text", " ");

4£¬Í¨¹ýHTTP·¢ËÍSolrInputDocumentµ½Solr¸üÐÂÇëÇó´¦ÀíÆ÷£¬²¢Ìá½»

try {
solrClient.add(coreName, doc);
solrClient.commit(coreName, true,true);//µÚÒ»¸öÊÇwaitFlush£¬µÚ¶þ¸öÊÇwaitSearcher
} catch (SolrServerException | IOException e) {
e.printStackTrace();
}

5£¬´´½¨SolrJ²éѯ·½·¨

public static void queryIndex(SolrClient solrClient, Map<String, String> queryParamMap, String coreName) throws IOException, SolrServerException {
MapSolrParams solrParams = new MapSolrParams(queryParamMap);
QueryResponse response = solrClient.query(coreName, solrParams);
SolrDocumentList results = response.getResults();
System.out.println("²éѯµ½" + results.getNumFound() + "¸öÎĵµ£¡");
for (SolrDocument document : results) {
String id = (String) document.getFirstValue("id");
String screen_name = (String) document.getFirstValue("screen_name");
System.out.println("id:" + id + ",name:" + screen_name);
}
}

6£¬µ÷Óòéѯ·½·¨

Map<String, String> queryParamMap = new HashMap<>();
queryParamMap.put("q", "*:*");//±íʾ²éѯÌõ¼þ
queryParamMap.put("fl", "id,screen_name");//ÒªÏÔʾµÄÄÚÈÝ
queryParamMap.put("sort", "id asc");//ÅÅÐò·½Ê½
try {
queryIndex(solrClient, queryParamMap, coreName);
} catch (IOException e) {
e.printStackTrace();
} catch (SolrServerException e) {
e.printStackTrace();
}

7£¬½á¹û£¬¶¼ÊÇÎÒ֮ǰÌí¼ÓµÄÎĵµ£º

SolrParams³ýÁËÉÏÃæÍ¨¹ýMap¶ÔÏóÀ´Éú³ÉµÄ·½·¨Í⣬Solr»¹ÌṩÁËÁíÒ»¸ö·½±ãµÄ·½·¨:

 

SolrQuery solrParams = new SolrQuery("*:*");
solrParams.addField("id");
solrParams.addField("screen_name");
solrParams.addSort("id", SolrQuery.ORDER.asc);
solrParams.setRows(10);//·µ»ØµÄÊýÁ¿

ͨ¹ýSolrInputDocument¶ÔÏóÀ´Ìí¼ÓÎĵµµÄ·½Ê½£¬ÐèÒªµ÷Óöà´ÎaddField·½·¨£¬ÕâÑù»áÓ°Ïì´úÂëÃÀ¹Û£¬ÓÐʱҲÄÑÒÔÀí½â¡£Òò´Ë£¬SolrÌṩÁËField×¢ÊÍ£¬¿ÉÒÔ°ÑField×¢ÊͶÔJava¶ÔÏóÖеÄÿ¸ö±äÁ¿Ó³Éäµ½ÏàÓ¦µÄSolr×ֶΡ£

Info.java:

public static class Info {
@Field
public String id;
@Field
public String screen_name;
@Field
public String type;
@Field
public String timestamp;
@Field
public String lang;
@Field
public String user_id;
@Field
public int favorites_count;
@Field
public String text;
public Info(String id, String screen_name, String type, String timestamp, String lang, String user_id, int favorites_count, String text) {
this.id = id;
this.screen_name = screen_name;
this.type = type;
this.timestamp = timestamp;
this.lang = lang;
this.user_id = user_id;
this.favorites_count = favorites_count;
this.text = text;
}
}

¹¹ÔìInfo¶ÔÏóÌá½»µ½solr£º

Info info = new Info("4", "lala", "post", "2019-01-22T15:22:00Z/HOUR", "cn", "16542314560", 154354,
"¹ØÓÚSolrµÄһЩ»ù´¡ÖªÊ¶£¬ÎÒÒÑдµ½CSDN²©¿ÍÖУ¬ÓÐÐËȤ¿ÉÒÔÀ´Á˽âһϡ£µØÖ·£º https://blog.csdn.net/weixin_37581297");
solrClient.addBean(coreName, info);
solrClient.commit(coreName, true, true);

ͬÑù£¬²éѯʱҲ¿ÉÒÔʹÓô˶ÔÏó£º

SolrQuery solrParams = new SolrQuery("*:*");
solrParams.addField("id");
solrParams.addField("screen_name");
solrParams.addSort("id", SolrQuery.ORDER.asc);
solrParams.setRows(10);//·µ»ØµÄÊýÁ¿
QueryResponse response = solrClient.query(coreName, solrParams);
List<Info> beans = response.getBeans(Info.class);

×ܽá

±¾ÎÄÊ×ÏȶÔSolr½øÐÐÁ˼òµ¥µÄ½éÉܺͰ²×°£¬È»ºóÕë¶ÔSolrµÄÅäÖü°Ä¿Â¼½á¹¹½øÐÐÁËÏêϸ˵Ã÷¡£×îºóͨ¹ýÒ»¸ö¼òµ¥µÄʾÀýÀ´½éÉÜÁËÈçºÎʹÓÃSolr¡£

ʾÀýÖУ¬ÎÒÃǽéÉÜÁËSolrµÄ´´½¨Ë÷ÒýºÍ²éѯË÷ÒýµÄÁ½ÖÖ·½·¨£¬Ò»ÖÖÊÇʹÓÃpost¼¯ºÏÉÏ´«xmlÎļþ£¨Ïà¶ÔÓ¦µÄ²éѯûÓÐÕâ¸öÃüÁî¡££©£¬ÁíÒ»ÖÖÊÇʹÓÃSolrJ¿Í»§¶ËÀ´´´½¨ºÍ²éѯÎĵµ¡£ÆäÖÐSolrJ¿Í»§¶Ë·½Ê½Ò²·ÖÁ˼òµ¥·½Ê½ºÍ×¢ÊÍ·½·¨¡£

ÁíÍ⻹½éÉÜÁËͨ¹ýschema.xml·½Ê½À´Ö¸¶¨¸÷×ֶεÄÀàÐÍ£¬½Ïа汾µÄÊÇʹÓÃmanaged-schemaÎļþ¡£Ò²½éÉÜÁËschema.xmlºÍmanaged-schemaÁ½ÖÖ·½Ê½µÄÇл»¡£

¶ÔSolrµÄ³£ÓÃÀàÐÍÒ²½øÐÐÁËһЩ¸ÅÊö£¬Ïêϸ˵Ã÷Çë²Î¿´¹Ù·½Îĵµ¡£

²Î¿¼ÎÄÏ×

Apache Solr²Î¿¼Ö¸ÄÏ

 
   
5812 ´Îä¯ÀÀ       28
Ïà¹ØÎÄÕÂ

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

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

¸ßÐÔÄÜJava±à³ÌÓëϵͳÐÔÄÜÓÅ»¯
JavaEE¼Ü¹¹¡¢ Éè¼ÆÄ£Ê½¼°ÐÔÄܵ÷ÓÅ
Java±à³Ì»ù´¡µ½Ó¦Óÿª·¢
JAVAÐéÄâ»úÔ­ÀíÆÊÎö