회사에서 개발하면서
spring-data를 사용해 solr와 연동하는 부분이 있는데
이게 생각보다 괜찮아서 색인도 spring data로 하고 있었다.
그러다 이번에 성능테스트를 하기 위해 mock 데이터를 수백만개를 집어넣고
전체색인을 돌렸더니... 4시간이 돌아도 색인이 안 끝난다. -_-
분명히 native query로 색인 할 수 있는 방법이 있을듯하여...
찾아보니 data import handler가 있다!
1. solrconfig.xml 수정
- core별로 설정해줘야 한다.
add -- <lib dir= "../../../dist/" regex= "solr-dataimporthandler-\d.*\.jar" /> <lib dir= "../../../dist/" regex= "mysql-connector-java-5.1.34-bin.jar" /> add -- <requestHandler name= "/dataimport" class = "org.apache.solr.handler.dataimport.DataImportHandler" > <lst name= "defaults" > <str name= "config" >data-config.xml</str> </lst> </requestHandler>
2. data-config.xml 생성 - core별 conf 디렉토리에 위치 - datasource의 batchSize를 -1로 하지않으면 OOM 발생...
</dataConfig> |
이제 인덱싱을 해보자!