示例#1
0
 protected override void DoStart()
 {
     base.DoStart();
     indexInfo        = new PersistentIndexInfo(Folder, PersistentIndex.FileNameInfo);
     fields           = PersistentMetadataFactory.CreateStorage(name.FieldsType, Folder, PersistentIndex.FileNameFields);
     occurrenceWriter = new PostingListWriter(Folder, PersistentIndex.FileNamePostingLists);
     dictionaryWriter = new PersistentDictionary(Folder, PersistentIndex.FileNameDictionary, PersistentIndex.FileNamePostingLists);
     dictionaryUpdate = dictionaryWriter.BeginUpdate();
     updates          = 0;
 }
示例#2
0
        public PersistentIndex(PersistentIndexName name)
        {
            var folder = name.Folder;

            if (!PersistentIndexInfo.Exists(folder, FileNameInfo))
            {
                throw new InvalidOperationException("No index");
            }

            HeaderReader = new PersistentIndexInfo(folder, FileNameInfo);
            Header       = HeaderReader.Read();
            if (Header == null)
            {
                throw new InvalidOperationException("No index");
            }

            Dictionary   = new PersistentDictionary(folder, FileNameDictionary, FileNamePostingLists);
            PostingLists = new PostingListReader(folder, FileNamePostingLists);
            Fields       = PersistentMetadataFactory.CreateStorage(Header.Type.Split(' ')[1], folder, FileNameFields);
            this.name    = name;
        }