mirror of
https://github.com/MarginaliaSearch/MarginaliaSearch.git
synced 2025-02-24 13:19:02 +00:00
(index) Add origin trace information for index readers
This used to be supported by the system but got lost in refactoring at some point.
This commit is contained in:
parent
7f7021ce64
commit
ef25d60666
@ -7,6 +7,7 @@ import nu.marginalia.index.query.EntrySource;
|
|||||||
import static java.lang.Math.min;
|
import static java.lang.Math.min;
|
||||||
|
|
||||||
public class ReverseIndexEntrySource implements EntrySource {
|
public class ReverseIndexEntrySource implements EntrySource {
|
||||||
|
private final String name;
|
||||||
private final BTreeReader reader;
|
private final BTreeReader reader;
|
||||||
|
|
||||||
int pos;
|
int pos;
|
||||||
@ -15,9 +16,11 @@ public class ReverseIndexEntrySource implements EntrySource {
|
|||||||
final int entrySize;
|
final int entrySize;
|
||||||
private final long wordId;
|
private final long wordId;
|
||||||
|
|
||||||
public ReverseIndexEntrySource(BTreeReader reader,
|
public ReverseIndexEntrySource(String name,
|
||||||
|
BTreeReader reader,
|
||||||
int entrySize,
|
int entrySize,
|
||||||
long wordId) {
|
long wordId) {
|
||||||
|
this.name = name;
|
||||||
this.reader = reader;
|
this.reader = reader;
|
||||||
this.entrySize = entrySize;
|
this.entrySize = entrySize;
|
||||||
this.wordId = wordId;
|
this.wordId = wordId;
|
||||||
@ -60,6 +63,6 @@ public class ReverseIndexEntrySource implements EntrySource {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String indexName() {
|
public String indexName() {
|
||||||
return "Full:" + Long.toHexString(wordId);
|
return name + ":" + Long.toHexString(wordId);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -25,8 +25,11 @@ public class ReverseIndexReader {
|
|||||||
private final long wordsDataOffset;
|
private final long wordsDataOffset;
|
||||||
private final Logger logger = LoggerFactory.getLogger(getClass());
|
private final Logger logger = LoggerFactory.getLogger(getClass());
|
||||||
private final BTreeReader wordsBTreeReader;
|
private final BTreeReader wordsBTreeReader;
|
||||||
|
private final String name;
|
||||||
|
|
||||||
|
public ReverseIndexReader(String name, Path words, Path documents) throws IOException {
|
||||||
|
this.name = name;
|
||||||
|
|
||||||
public ReverseIndexReader(Path words, Path documents) throws IOException {
|
|
||||||
if (!Files.exists(words) || !Files.exists(documents)) {
|
if (!Files.exists(words) || !Files.exists(documents)) {
|
||||||
this.words = null;
|
this.words = null;
|
||||||
this.documents = null;
|
this.documents = null;
|
||||||
@ -84,7 +87,7 @@ public class ReverseIndexReader {
|
|||||||
|
|
||||||
if (offset < 0) return new EmptyEntrySource();
|
if (offset < 0) return new EmptyEntrySource();
|
||||||
|
|
||||||
return new ReverseIndexEntrySource(createReaderNew(offset), 2, wordId);
|
return new ReverseIndexEntrySource(name, createReaderNew(offset), 2, wordId);
|
||||||
}
|
}
|
||||||
|
|
||||||
public QueryFilterStepIf also(long wordId) {
|
public QueryFilterStepIf also(long wordId) {
|
||||||
@ -92,7 +95,7 @@ public class ReverseIndexReader {
|
|||||||
|
|
||||||
if (offset < 0) return new QueryFilterNoPass();
|
if (offset < 0) return new QueryFilterNoPass();
|
||||||
|
|
||||||
return new ReverseIndexRetainFilter(createReaderNew(offset), "full", wordId);
|
return new ReverseIndexRetainFilter(createReaderNew(offset), name, wordId);
|
||||||
}
|
}
|
||||||
|
|
||||||
public QueryFilterStepIf not(long wordId) {
|
public QueryFilterStepIf not(long wordId) {
|
||||||
|
@ -102,7 +102,7 @@ class ReverseIndexReaderTest {
|
|||||||
preindex.finalizeIndex(docsFile, wordsFile);
|
preindex.finalizeIndex(docsFile, wordsFile);
|
||||||
preindex.delete();
|
preindex.delete();
|
||||||
|
|
||||||
return new ReverseIndexReader(wordsFile, docsFile);
|
return new ReverseIndexReader("test", wordsFile, docsFile);
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -41,14 +41,14 @@ public class IndexFactory {
|
|||||||
|
|
||||||
public ReverseIndexReader getReverseIndexReader() throws IOException {
|
public ReverseIndexReader getReverseIndexReader() throws IOException {
|
||||||
|
|
||||||
return new ReverseIndexReader(
|
return new ReverseIndexReader("full",
|
||||||
ReverseIndexFullFileNames.resolve(liveStorage, ReverseIndexFullFileNames.FileIdentifier.WORDS, ReverseIndexFullFileNames.FileVersion.CURRENT),
|
ReverseIndexFullFileNames.resolve(liveStorage, ReverseIndexFullFileNames.FileIdentifier.WORDS, ReverseIndexFullFileNames.FileVersion.CURRENT),
|
||||||
ReverseIndexFullFileNames.resolve(liveStorage, ReverseIndexFullFileNames.FileIdentifier.DOCS, ReverseIndexFullFileNames.FileVersion.CURRENT)
|
ReverseIndexFullFileNames.resolve(liveStorage, ReverseIndexFullFileNames.FileIdentifier.DOCS, ReverseIndexFullFileNames.FileVersion.CURRENT)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
public ReverseIndexReader getReverseIndexPrioReader() throws IOException {
|
public ReverseIndexReader getReverseIndexPrioReader() throws IOException {
|
||||||
return new ReverseIndexReader(
|
return new ReverseIndexReader("prio",
|
||||||
ReverseIndexPrioFileNames.resolve(liveStorage, ReverseIndexPrioFileNames.FileIdentifier.WORDS, ReverseIndexPrioFileNames.FileVersion.CURRENT),
|
ReverseIndexPrioFileNames.resolve(liveStorage, ReverseIndexPrioFileNames.FileIdentifier.WORDS, ReverseIndexPrioFileNames.FileVersion.CURRENT),
|
||||||
ReverseIndexPrioFileNames.resolve(liveStorage, ReverseIndexPrioFileNames.FileIdentifier.DOCS, ReverseIndexPrioFileNames.FileVersion.CURRENT)
|
ReverseIndexPrioFileNames.resolve(liveStorage, ReverseIndexPrioFileNames.FileIdentifier.DOCS, ReverseIndexPrioFileNames.FileVersion.CURRENT)
|
||||||
);
|
);
|
||||||
|
Loading…
Reference in New Issue
Block a user