private Query toQuery()

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();
    }