In fulltext index all entries are stored, sorted by <word, docid>.
Considering a query "+word1 +word2" fulltext search works like this
(in boolean mode, of course)
find first (the smallest) docid for "word1" - say, it's docid1
find first (the smallest) docid for "word2" - say, it's docid2
repeat {
if docid1==docid2 then report a match
if docid1 < docid2 then get next docid for word1
else get next docid for word2
}
(in fact, it's implemented with priority queue and works for any number of words)
The above should be changed to
if docid1 < docid2 then
get next docid for word1 that is greater or equal than docid2
