Solr 3.5 のexampleディレクトリの以下で

% java -jar start.jar

した際の index fileの形式を見る. その5.

indexはまっさらにしている. 前回の続きではない.

2件update&commit(id, s_s field)


curl http://localhost:8983/solr/update\?commit\=true -H "Content-Type: text/xml" --data-binary '<add><doc><field name="id">abc</field><field name="s_s">abc</field></doc><doc><field name="id">abcde</field><field name="s_s">abc</field></doc></add>'

schama.xml (抜粋)


   <field name="id" type="string" indexed="true" stored="true" required="true" /> 

   <dynamicField name="*_s"  type="string"  indexed="true"  stored="true"/>

ファイル

  • segments.gen
  • segments_2
  • _0.fdt
  • _0.fdx
  • _0.fnm
  • _0.frq
  • _0.nrm
  • _0.tii
  • _0.tis


0000000 ff ff ff fc 00 00 00 00 00 00 00 03 00 00 00 80
0000020 00 00 00 10 00 00 00 0a 00 03 61 62 63 00 01 00
0000040 00 03 02 64 65 00 01 01 00 03 00 01 02 01 00
0000057
  • segments* については略.
  • *.nrm, *.tii はその1と同じ
  • *.fnm はその3と同じ
    • 同じフィールドを利用しているから

_0.fdt


0000000 00 00 00 03 02 00 00 03 61 62 63 01 00 03 61 62
0000020 63 02 00 00 05 61 62 63 64 65 01 00 03 61 62 63
0000040
  • Format
    • 00 00 00 03
      • org.apache.lucene.index.FieldsWriter.FORMAT_LUCENE_3_2_NUMERIC_FIELDS
  • FieldCount
    • 02
      • 1つのDocumentに2つのfieldがある
  • FieldNum
    • 00
  • Bits
    • 00
  • Value
    • 03 61 62 63
      • "abc"
  • FieldNum
    • 01
  • Bits
    • 00
  • Value
    • 03 61 62 63
      • "abc"
  • FieldCount
    • 02
      • 1つのDocumentに2つのfieldがある
  • FieldNum
    • 00
  • Bits
    • 00
  • Value
    • 05 61 62 63 64 65
      • "abcde"
  • FieldNum
    • 01
  • Bits
    • 00
  • Value
    • 03 61 62 63
      • "abc"

_0.fdx


0000000 00 00 00 03 00 00 00 00 00 00 00 04 00 00 00 00
0000020 00 00 00 11
0000024
  • Format
    • 00 00 00 03
      • org.apache.lucene.index.FieldsWriter.FORMAT_LUCENE_3_2_NUMERIC_FIELDS
  • FieldValuesPosition
    • 00 00 00 00 00 00 00 04
  • FieldValuesPosition
    • 00 00 00 00 00 00 00 11

_0.frq


0000000 00 01 00 01
0000004

  • TermFreq(DocDelta)
    • 00
  • TermFreq(DocDelta)
    • 01

  • TermFreq(DocDelta)
    • 00
  • TermFreq(DocDelta)
    • 01
  • *.tis から 最初の1 byte が idのabc, 次が id の abcde, 最後の2byte が s_s の abc の TermFreq だとわかる

_0.tis


0000000 ff ff ff fc 00 00 00 00 00 00 00 03 00 00 00 80
0000020 00 00 00 10 00 00 00 0a 00 03 61 62 63 00 01 00
0000040 00 03 02 64 65 00 01 01 00 03 00 01 02 01 00
0000057
  • TIVersion
    • ff ff ff fc
      • org.apache.lucene.index.TermInfosWriter.FORMAT_VERSION_UTF8_LENGTH_IN_BYTES
  • IndexTermCount
    • 00 00 00 00 00 00 00 02
  • IndexInterval
    • 00 00 00 80
  • SkipInterval
    • 00 00 00 10
  • MaxSkipLevels
    • 00 00 00 0a

  • TermInfo(Term<PrefixLength, Suffix, FieldNum>, DocFreq, FreqDelta, ProxDelta, [SkipDelta])
    • 00 03 61 62 63 00 01 00 00
      • Suffix : 03 61 62 63 (abc), FieldNum: 0, DocFreq: 1, SkipDeltaなし

  • TermInfo(Term<PrefixLength, Suffix, FieldNum>, DocFreq, FreqDelta, ProxDelta, [SkipDelta])
    • 03 02 64 65 00 01 01 00
      • PrefixLength: 3, Suffix : 02 64 65 (de), FieldNum: 0, DocFreq: 1, FreqDelta: 1, SkipDeltaなし
      • FreqDelta は *.frq ファイルでの Delta
  • TermInfo(Term<PrefixLength, Suffix, FieldNum>, DocFreq, FreqDelta, ProxDelta, [SkipDelta])
    • 03 00 01 02 01 00
      • PrefixLength: 3, Suffix : 00, FieldNum: 1, DocFreq: 2, FreqDelta: 1, SkipDeltaなし

メンバーのみ編集できます