2014-01-25 2 views

답변

1

Lucene은 삭제 된 문서를 확장자가 .del 인 파일로 플래그 지정합니다.이 파일 형식은 다음과 같습니다. Format, Header, ByteCount, BitCount, Bits | DGaps (포맷)에 따라

  • 포맷 ByteSize, BitCount -> UINT32
  • 비트 -> bytecount는
  • DGaps -> NonzeroBytesCount
  • DGap을 -> VINT
  • NonOnesByte - -> 바이트
  • 헤더 -> CodecHeader

형식은 1 : DGaps을 삭제 나타냅니다.

ByteCount는 비트 수를 나타냅니다. 일반적으로 (SegSize/8) +1입니다.

BitCount는 현재 비트에서 설정되는 비트 수를 나타냅니다.

비트는 색인 된 각 문서에 대해 1 비트를 포함합니다. 문서 번호에 해당하는 비트가 지워지면 해당 문서는 삭제됨으로 표시됩니다. 비트 순서는 가장 중요한 것부터 가장 중요한 것까지입니다. 따라서 비트에 0x00과 0x02의 두 바이트가 포함되어 있으면 문서 9가 활성 상태 (삭제되지 않음)로 표시됩니다.

DGaps는 비트보다 효율적으로 희소 비트 벡터를 나타냅니다. Bit의 nonOnes 바이트 인덱스와 nonOnes 바이트 자체의 DGaps로 구성됩니다. 비트 (NonOnesBytesCount)의 nonOnes 바이트 수는 저장되지 않습니다. 예를 들어

거기 8000 비트이며 DGaps 만이 사용될 것이다 10,12,32 클리어되는 비트 경우 1

(VINT) (바이트) 20 (VINT) 3 (바이트) 1

lucene I/O 작업은 열리는 IndexWriter에 따라 달라지며 IndexWriter의 개체가 몇 개인 지, 즉 문서 수를 삭제하거나 색인하려는 경우 하나의 I/O 적중 횟수 작업을 완료 한 경우 writer.commit() 또는 writer.close()을 사용합니다.

무엇을 말하려고하면 IndexWriter을 만들고 초기화하는 것이 비용이고 lucene은 IndexWriter 개체를 사용하는 것이 좋습니다.

Here 당신은 lucene에 관한 모든 것을 찾을 수 있습니다.

관련 문제