You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
In compile()'s third pass (or elsewhere where appropriate), we need to consider matchphrase_impl exec nodes and if the phrase size is say [3, 16], replace it with an alternative which first checks if all decoders seek() return true, and then materialises hits for all of them, as opposed to what we do now, where we seek() and materialize() in the same loop. This way, if we have a long phrase, and say the last phrase's word doesn't match the document, we wouldn't materialise all previous phrase words.
Most phrases are 2-3 terms long though, so for now this is not something worth pursuing, although it should be trivial to implement.
We would just need to remember to account for that in codeblocks where we check for matchphrase_impl.
The text was updated successfully, but these errors were encountered:
In compile()'s third pass (or elsewhere where appropriate), we need to consider
matchphrase_impl
exec nodes and if the phrase size is say [3, 16], replace it with an alternative which first checks if all decoders seek() return true, and then materialises hits for all of them, as opposed to what we do now, where we seek() and materialize() in the same loop. This way, if we have a long phrase, and say the last phrase's word doesn't match the document, we wouldn't materialise all previous phrase words.Most phrases are 2-3 terms long though, so for now this is not something worth pursuing, although it should be trivial to implement.
We would just need to remember to account for that in codeblocks where we check for
matchphrase_impl
.The text was updated successfully, but these errors were encountered: