I think you are asking two questions ...
Question 1: Adding an Additional Filter
Remember, QueryFilter accepts any query (and not just TermQuery ). This way you can create the BooleanQuery criteria you want to filter.
TermQuery toolQuery = new TermQuery(new Term("Tool", "Nail")); TermQuery nailLengthQuery = new TermQuery(new Term("NailLength", "3 inches")); BooleanQuery filterQuery = new BooleanQuery(); filterQuery.add(toolQuery, BooleanClause.Occur.MUST); filterQuery.add(nailLengthQuery, BooleanClause.Occur.MUST); Filter f = new QueryFilter(filterQuery);
Question 2: Search without a search query
If the user does not provide a search query, you can search using the MatchAllDocsQuery query.
Adam paynter
source share