개발하면서/etc

[Solr] core 여러개 만들기

오산돌구 2011. 8. 28. 09:47
반응형

http://apache.tt.co.kr/lucene/solr/3.3.0/  에서 solr를 다운받습니다.  ( 8/28 solr 3.3.0 version )

 

1. port를 변경하여 두개의 solr를 실행하는 방법  

( http://wiki.apache.org/solr/DistributedSearch )

 . example 폴더를 복사한다.

 

. example7574\etc\jetty.xml에서 port를 변경한다.

<Call name="addConnector">
  <Arg>
    <New class="org.mortbay.jetty.bio.SocketConnector">
      <Set name="host"><SystemProperty name="jetty.host" /></Set>
<!--      <Set name="port"><SystemProperty name="jetty.port" default="8983"/></Set>  이부분을 아래와 같이 변경-->
      <Set name="port"><SystemProperty name="jetty.port" default="7574"/></Set>
      <Set name="maxIdleTime">50000</Set>
      <Set name="lowResourceMaxIdleTime">1500</Set>
      <Set name="statsOn">false</Set>
    </New>
  </Arg>
</Call>

 

. 콘솔창을 두개 연다음 하나는 example\에 있는 start.jar 실행 다른 하나는 example7574에 있는 start.jar 실행

 

D:\temp\apache-solr-3.3.0\example7574> java -Dsolr.solr.home=d:\temp\apache-solr-3.3.0\example7574\solr -Dsolr.abortOnConfigurationError=true -jar start.jar 
D:\temp\apache-solr-3.3.0\example> java -Dsolr.solr.home=d:\temp\apache-solr-3.3.0\example\solr -Dsolr.abortOnConfigurationError=true -jar start.jar  

 

2. solr.xml 설정하기

solr.xml    // core당 schema, config 설정을 해준다.
<solr persistent="false">
  <!--
  adminPath: RequestHandler path to manage cores.  
    If 'null' (or absent), cores will not be manageable via request handler
  -->
  <cores adminPath="/admin/cores">
    <core name="collection1000" instanceDir="." schema="schema_1000.xml" config="solrconfig_1000.xml" />
    <core name="collection2000" instanceDir="." schema="schema_2000.xml" config="solrconfig_2000.xml" />
  </cores>
</solr>

. config 폴더에서 solrconfig, schema 파일을 solr.xml에서 설정한 만큼 만든다.
. 동일한 port에서 두개 이상의 core를 사용하기 때문에 접근하는 url이 변경된다.

기존 : [host]:[port]/solr/~~~~(update, dataimport, select, 사용)
변경 : [host]:[port]/solr/[coreName]/~~~~(update, dataimport, select, 사용)

 오......그럼 색인어별 (ㄱ-ㄹ, ㅇ-ㅎ) 나눠서 코어별로 색인 후 검색어가 들어오면 적당한 Core에만 질의하면 나름 분산 검색? ㅋㅋㅋㅋㅋ

 

 

3. solr에서 multicore라는 폴더 활용하기

D:\temp\apache-solr-3.3.0\example> java -Dsolr.solr.home=d:\temp\apache-solr-3.3.0\example\multicore -Dsolr.abortOnConfigurationError=true -jar start.jar 

잘된다~~ ; )


================ 2011.08.29 추가  ================
multicore 폴더에서 다수의 core를 하는데 dataimport를  하면 아래와 같은 에러가 발생한다.

 
sample이라면 core0, core1 폴더가 있을텐데 각 폴더의 solrconfig.xml 에서 <config> 부분에 lib를 추가한다.

<lib dir="../../../dist/" regex="apache-solr-dataimporthandler-\d.*\.jar" />

 

반응형