Preparer

  • Frontier의 critical한 부분에 도달하기 전에 URI를 사전 로딩하고 정책 기반 정보들을 가능한 최대한으로 사전 계산한다.

기존 세팅 값

 <bean id="preparer" class="org.archive.crawler.prefetch.FrontierPreparer">
  <!-- <property name="preferenceDepthHops" value="-1" /> -->
  <!-- <property name="preferenceEmbedHops" value="1" /> -->
  <!-- <property name="canonicalizationPolicy"> 
        <ref bean="canonicalizationPolicy" />
       </property> -->
  <!-- <property name="queueAssignmentPolicy"> 
        <ref bean="queueAssignmentPolicy" />
       </property> -->
  <!-- <property name="uriPrecedencePolicy"> 
        <ref bean="uriPrecedencePolicy" />
       </property> -->
  <!-- <property name="costAssignmentPolicy"> 
        <ref bean="costAssignmentPolicy" />
       </property> -->
 </bean>
  • [property에 대한 설명]
    1. preferenceDepthHops : seed가 여러개 일 때, 현재 seed로 부터 몇 hop 떨어져 있는 uri들에게 다른 seed들 보다 높은 우선순위를 부여할 것인지 설정한다. 예를 들어 1로 설정 할 경우 현재 진행중인 seed로 부터 1 hop 떨어진 uri들은 높은 우선 순위를 갖게된다. -1일 때에는 우선 순위 없이 seed들을 breadth-first 탐색으로 진행 후 발견된 링크들을 처리한다. 0으로 설정할 경우 모든 발견된 링크들을 먼저 처리한 후 다음 seed를 처리한다.
    2. preferenceEmbedHops : 위와 같은 방식을 embed 링크에 적용한다.
    3. canonicalizationPolicy : uri를 정규화 시키는 정책.(소문자화, 파라미터 제거 등)
    4. queueAssignmentPolicy : uri를 queue에 할당시키는 정책 설정.
    5. uriPrecedencePolicy : 전체적으로 uri의 우선순위를 결정하는 정책 설정.
    6. costAssignmentPolicy : queue내에서 uri의 우선순위를 결정하는 정책 설정.


Posted by Righ
,