ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • multiple dataSource for one Collection
    검색/Solr 2019. 12. 11. 12:13
    반응형

    상황 : deal_list Collection 을 위해 만들어진 색인 쿼리가 점점 무거워지고 있다.

    현재 2000만건 색인 중이지만 추후에, 특정 상점의 데이터의 비중이 몹시 커질 예정이다.


    문제 : 특정 상점만 분리해서 색인을 진행하고 싶다. 그러나 collection은 동일하게 deal_list 여야 한다.

     

    방법 1

     

    (asis) solrconfig.xml

    <requestHandler name="/dataimport" class="solr.DataImportHandler">
        <lst name="defaults">
          <str name="config">data-config.xml</str>
        </lst>
      </requestHandler>

    (tobe) solrconfig.xml

        <requestHandler name="/dataimport2"
             class="org.apache.solr.handler.dataimport.DataImportHandler">
            <lst name="defaults">
              <str name="config">data-config1.xml</str>
            </lst>
          </requestHandler>
    
          <requestHandler name="/dataimport"
             class="org.apache.solr.handler.dataimport.DataImportHandler">
            <lst name="defaults">
              <str name="config">data-config2.xml</str>
            </lst>
          </requestHandler>

     

     

    결과 : 성공 . dataimport 창이 생성됨

     

    처음에는 fail 떴었는데

    {
      "responseHeader": {
        "status": 0,
        "QTime": 1
      },
      "initArgs": [
        "defaults",
        [
          "config",
          "data-config1.xml"
        ],
        "deal_list_shard2_replica1",
        [
          "config",
          "data-config2.xml"
        ]
      ],
      "command": "status",
      "status": "idle",
      "importResponse": "",
      "statusMessages": {
        "Time Elapsed": "0:0:6.991",
        "Total Requests made to DataSource": "0",
        "Total Rows Fetched": "0",
        "Total Documents Processed": "0",
        "Total Documents Skipped": "0",
        "Full Import failed": "2019-12-11 11:51:38"
      }
    }

     

    solr를 재 실행 하고 나니 admin에 다음과 같이 dataimport 창이 하나 더 생성됨

     

    첫번째 dataimport 에는 clean, commit 옵션 설정하고

    두번째 dataimport2에는 commit 옵션만 설정

    색인 후 각 db의 데이터가 모두 잘 검색이 된다.

     

     

    색인 수행 테스트 :  

    1. dataimport1 과 dataimport2를 약간의 텀을 두고 색인을 수행

        색인에 사용되는 쓰레드 수가 증가해서 deal_list 색인 속도가 빨라졌다.
        segments 의 size가 들쭉날쭉하게 생성된다.

    2. dataimport1 수행 완료 후에 dataimport2를 수행

        dataimport를 나눈 의미가 없다.

       segments 의 size가 고르게 생성된다.

     

    3 건수를 늘려서 테스트 진행해보기 

    4 shard 여러개 생성 후 데이터 정상 분배 되는지 테스트

    4 각 shard에 레플리카 추가 후에 데이터 정상 생성되는지 확인

     

      

     

     

    반응형

    '검색 > Solr' 카테고리의 다른 글

    쿼리 분리  (0) 2020.03.16
Designed by Tistory.