[dokuwiki] New PR: SearchIndex: Rearranging the Index class structure

  • From: "splitbrain" <wiki@xxxxxxxxxxxx>
  • To: dokuwiki@xxxxxxxxxxxxx
  • Date: Sat, 4 Dec 2021 16:36:25 +0100 (CET)

Hi,

splitbrain opened a new pull request at 
https://github.com/splitbrain/dokuwiki/pull/3557:

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.

Note: the distinction between the two types of Index files might not be so 
clear cut in the end or we might even have a third type.

I also think that it might be useful to have a \dokuwiki\Search\Index\PageIndex 
inheriting from RowIndex  providing a few more page-specific methods.

The next step would be to try just remove \dokuwiki\Search\AbstractIndex and 
try to model the Fulltext and Metadata Indexes as Collections.



Please help us to review this pull request, so new contributors get feedback in 
a timely manner.

f0335ef0-5517-11ec-9573-1eb952cc8845


-- 
DokuWiki mailing list - more info at
http://www.dokuwiki.org/mailinglist

Other related posts:

  • » [dokuwiki] New PR: SearchIndex: Rearranging the Index class structure - splitbrain