This custom algo lazily compute the intersections between words, to avoid too much set operations and database reads