RosettaCodeData/Task/Inverted-index/Icon/inverted-index-2.icon
2023-07-01 13:44:08 -04:00

19 lines
480 B
Text

record InvertedIndexRec(simple,full)
procedure FullInvertedIndex(ii,k,words) #: accumulate a full inverted index
/ii := InvertedIndexRec( table(set()), table() ) # create lookup table and null set
wc := 0
every (w := !words, wc +:= 1) do {
if *ii.simple[w] = 0 then {
ii.simple[w] := set() # new word, new set
ii.full[w] := table() # also new table
}
insert(ii.simple[w],k)
/ii.full[w,k] := set()
insert(ii.full[w,k],wc)
}
return ii
end