if (allGroups != null && allGroups.length > 0) {
// Create a query that matches any group
BooleanQuery groupQuery = new BooleanQuery();
for (int i = 0; i < allGroups.length; i++) {
// Add as OR
groupQuery.add(new TermQuery(new Term("groups", allGroups[i])), Occur.SHOULD);
}
// Create a main query that contains the group query and the search query
// combined with AND
BooleanQuery mainQuery = new BooleanQuery();
mainQuery.add(mQuery, Occur.MUST);
mainQuery.add(groupQuery, Occur.MUST);
// Set the main query as query to use
mQuery = mainQuery;
}
}
// Add the mimetype field search
if (mimeTypeFieldText != null) {
BooleanQuery mimetypeFieldQuery = new BooleanQuery();
mimetypeFieldQuery.add(new TermQuery(new Term("mimetype",
mimeTypeFieldText.substring(9).replace("\"", ""))),
Occur.SHOULD);
BooleanQuery mainQuery = new BooleanQuery();
if (mQuery != null) {
mainQuery.add(mQuery, Occur.MUST);