| b8ef19fe | 04-Dec-2021 |
Andreas Gohr <andi@splitbrain.org> |
Add support to access multiple rows at once
When saving word indexs (w*.idx) often multiple words of the same length will need to be accessed. This implements a new method that allows that in an eff
Add support to access multiple rows at once
When saving word indexs (w*.idx) often multiple words of the same length will need to be accessed. This implements a new method that allows that in an efficient way.
Note: this removes the INDEX_MARK_DELETED mechanism to mark deleted entries. Entries are now deleted using empty lines again. This makes the batch handling much simpler. If a good reason exists that we should keep it, it can be readded.
show more ...
|
| ec5280ef | 04-Dec-2021 |
Andreas Gohr <andi@splitbrain.org> |
rearranging the Index class structure
This is a first step at stuff at restructuring the indexing classes a bit more.
Some background:
We have basically two different kind of index files:
a) RowI
rearranging the Index class structure
This is a first step at stuff at restructuring the indexing classes a bit more.
Some background:
We have basically two different kind of index files:
a) RowIndex (like page.idx)
Each line in the index contains a single value. The line number is used as primary ID. These files can be very large. Thus an index like that should never be read into memory completely if it can be avoided.
b) TupleIndex (like i12.idx)
Each line contains a list of tuples. The files tend to be smaller so loading them completely for search and replace is easier.
Since the the access is so completely different, I tried to model that in the two different classes, basically moving the methods from \dokuwiki\Search\AbstractIndex to the new classes.
While doing so, I tried to make the doc blocks, variable names and interface easier to understand. I also added tests for each of the methods.
The old code has not been touched yet. So these classes do not do anything outside of tests currently.
show more ...
|
| a16bd548 | 21-Sep-2020 |
Satoshi Sahara <sahara.satoshi@gmail.com> |
remove unnecessary if blocks
getPID(), saveIndex(), saveIndexKey(), getPageWords() return always true, otherwise exceptions. |