[Arirang] first position increment must be > 0 오류
ITWeb/검색일반 2017. 6. 9. 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?
}