in search-backend-indexer/src/main/java/org/apache/maven/search/backend/indexer/internal/IndexerCoreSearchBackendImpl.java [149:183]
private Query toQuery(HashSet<Field> searchedFields, org.apache.maven.search.request.Query query) {
if (query instanceof org.apache.maven.search.request.BooleanQuery.And) {
org.apache.maven.search.request.BooleanQuery bq = (org.apache.maven.search.request.BooleanQuery) query;
return new BooleanQuery.Builder()
.add(new BooleanClause(toQuery(searchedFields, bq.getLeft()), BooleanClause.Occur.MUST))
.add(new BooleanClause(toQuery(searchedFields, bq.getRight()), BooleanClause.Occur.MUST))
.build();
} else if (query instanceof FieldQuery) {
FieldQuery fq = (FieldQuery) query;
org.apache.maven.index.Field icFieldName = FIELD_TRANSLATION.get(fq.getField());
if (icFieldName != null) {
searchedFields.add(fq.getField());
if (fq.getValue().endsWith("*")) {
return indexer.constructQuery(icFieldName, fq.getValue(), SearchType.SCORED);
} else {
return indexer.constructQuery(icFieldName, fq.getValue(), SearchType.EXACT);
}
} else {
throw new IllegalArgumentException("Unsupported Indexer field: " + fq.getField());
}
}
return new BooleanQuery.Builder()
.add(new BooleanClause(
indexer.constructQuery(
org.apache.maven.index.MAVEN.GROUP_ID, query.getValue(), SearchType.SCORED),
BooleanClause.Occur.SHOULD))
.add(new BooleanClause(
indexer.constructQuery(
org.apache.maven.index.MAVEN.ARTIFACT_ID, query.getValue(), SearchType.SCORED),
BooleanClause.Occur.SHOULD))
.add(new BooleanClause(
indexer.constructQuery(org.apache.maven.index.MAVEN.NAME, query.getValue(), SearchType.SCORED),
BooleanClause.Occur.SHOULD))
.build();
}