/// <summary> /// Standardowy konstruktor /// </summary> /// <param name="workingDirPath">Ścieżka do katalogu zawierającego (lub mającego zawierać) plik danych kontekstów na żądanie /// </param> /// <param name="bkdIndex">Odwrócony indeks</param> /// <param name="fwdIndex">Indeks wprzód</param> public IxHalOnDemCtxComp(string workingDirPath, IIxIndex bkdIndex, IxStdDiskFwdIndex fwdIndex) { workingDirPath = Misc.provideEndBackslash(workingDirPath); Misc.provideDirectory(workingDirPath); dataFilePath = workingDirPath + "halContextOnDemand.dat"; this.invIndex = bkdIndex; this.fwdIndex = fwdIndex; if (File.Exists(dataFilePath)) loadNearestFromFile(dataFilePath); }
/// <summary> /// Standardowy konstruktor /// </summary> /// <param name="indexDirPath">Ścieżka do katalogu, gdzie zostaną zapisane dane indeksu (musi nie istnieć bądź być pusty)</param> /// <param name="threadCount">Liczba wątków indeksera</param> public IxStdRIIndexer(string indexDirPath, uint threadCount) { if (!Misc.isDirectoryMissingOrEmpty(indexDirPath)) throw new IxException("Target index directory exists and is not empty"); this.indexDirPath = Misc.provideEndBackslash(indexDirPath); Misc.provideDirectory(this.indexDirPath); index = new Index.IxStdDiskRIIndex(this.indexDirPath + "invIndex", IxIndexMode.CREATE); documentsIndex = new DocumentsIndex.IxStdDiskDocumentsIndex(this.indexDirPath + "documents", DocumentsIndexMode.CREATE); if (IxSettings.createFwdIndex) fwdIndex = new IxStdDiskFwdIndex(this.indexDirPath + "fwdIndex", IxIndexMode.CREATE); sharedData = new IxStdRIIndexerSharedData(); sharedData.docIdAllocator = this; if (IxSettings.createBkdDictionary) sharedData.dictionary = new IxDoubleDictCreator(this, this); else sharedData.dictionary = createFwdDict(this); this.threadCount = threadCount; }