In Lucene, I know of the possibility of Occur.SHOULD, Occur.MUST and the “minimum should match” setting on the boolean query.
Now, when querying, I want to
- (1) match the documents which either contain all the terms of the query (Occur.MUST for all terms would do that) or,
- (2) if all terms for a given field of a document are a subset of the query terms, that document should match as well.
Document d hast field f with terms A, B, C
Query with the following terms should match that document:
A B C
A B C D
Query with the following terms should not match:
A B D