[Arirang] first position increment must be > 0 오류

ITWeb/검색일반 2017.06.09 10:22

아직 확인 및 테스트 하지 않았습니다. ^^;

그냥 코드만 보고 이렇게 하면 되겠다 정도만 입니다.


- DefaultIndexingChain.java

first position increment must be > 0


관련 에러 수정을 위해서는 KoreanFilter.java 내 posIncrAtt.setPositionIncrement(iw.getPosInc()); 영역에서 

iw.getPosInc() 가 -1 인지 검사해서 1로 변경을 해줍니다.

변경에 따른 오류에 대해서 검토가 필요 합니다.


  private void setAttributesFromQueue(boolean isFirst) {

    final KoreanToken iw = morphQueue.removeFirst();

    if (isFirst && !morphQueue.isEmpty()) {

      // our queue has more elements remaining (e.g. we decompounded)

      // capture state for those. We set the term attribute to be empty

      // so we save lots of array copying later.

      termAtt.setEmpty();

      currentState = captureState();

    }

 

    termAtt.setEmpty().append(iw.getTerm());

    offsetAtt.setOffset(iw.getOffset(), iw.getOffset() + iw.getLength());

    morphAtt.setToken(iw);


    // on the first Token we preserve incoming increment:

    if (!isFirst) {

      posIncrAtt.setPositionIncrement(iw.getPosInc());

    }

    

    String type = TokenUtilities.getType(iw.getTerm().toCharArray(), iw.getTerm().length());

    typeAtt.setType(type);

    

    // TODO: How to handle PositionLengthAttribute correctly?

  }



저작자 표시 비영리 변경 금지
신고
Trackback 0 : Comment 0