def _poses(self):
            # Use a term vector for the current document to get the positions of
            # the words in the phrase
            docnum = self.intersection.id
            fieldnum = self.fieldnum
            if not self.reader.has_vector(docnum, fieldnum):
                raise QueryError("Phrase query: document %s field %r has no vector")
            vreader = self.reader.vector(docnum, fieldnum)
            # The vector is in sorted order, so grab the positions lists
            # in sorted order and put them in a dictionary
            poses = {}
            for word in self.sortedwords:
                vreader.skip_to(word)
                assert vreader.id >= word
                if vreader.id != word:
                    # Since the term index and term vector can potentially use different analyzers,
                    # it's possible that the words in the term index might not match the words in the
                    # vector.
                    raise QueryError("Phrase query: %r in term index but not in vector (possible analyzer mismatch)" % word)
                poses[word] = vreader.value_as("positions")
            # Now put the position lists in phrase order
            poses = [poses[word] for word in self.words]
            return poses
dataset/ETHPy150Open dokipen/whoosh/src/whoosh/query.py/Phrase.VectorPhraseScorer._poses/operator `==` -> `>=`