SpanQuery
SpanQuery offers the ability to restrict matching by Term positions. It shines when you want to match multiple terms that are close to each other, but not exactly matched as a phrase. It's similar to PhraseQuery with a slop set greater than zero, but it gives you more options to control how matching is done. For instance, say we want to search for terms "humpty"
and "wall"
from our test setup so that we can match on the sentence "Humpty Dumpty sat on a wall"
. We can perform this search using either PhraseQuery or SpanQuery with a slop set to 4; both Queries would match. So let's say we switch the two Terms around. Now, we have Terms in this order, "wall"
and "humpty"
. PhraseQuery will fail to find a match because the Terms are out of order. SpanQuery has an option to match, Terms out of order so that we can still find a match even when the Terms' order is reversed.
SpanQuery has other useful functionalities as well. We will explore each SpanQuery type in detail:
SpanTermQuery
: This...