Example usage for org.apache.lucene.facet.sortedset DefaultSortedSetDocValuesReaderState DefaultSortedSetDocValuesReaderState

List of usage examples for org.apache.lucene.facet.sortedset DefaultSortedSetDocValuesReaderState DefaultSortedSetDocValuesReaderState

Introduction

In this page you can find the example usage for org.apache.lucene.facet.sortedset DefaultSortedSetDocValuesReaderState DefaultSortedSetDocValuesReaderState.

Prototype

public DefaultSortedSetDocValuesReaderState(IndexReader reader, String field) throws IOException 

Source Link

Document

Creates this, pulling doc values from the specified field.

Usage

From source file:com.epam.catgenome.dao.index.FeatureIndexDao.java

License:Open Source License

public int getTotalVariationsCountFacet(List<? extends FeatureFile> files, Query query) throws IOException {
    if (CollectionUtils.isEmpty(files)) {
        return 0;
    }/*www  .ja  va 2  s .  c  om*/

    SimpleFSDirectory[] indexes = fileManager.getIndexesForFiles(files);

    try (MultiReader reader = openMultiReader(indexes)) {
        if (reader.numDocs() == 0) {
            return 0;
        }

        FacetsCollector facetsCollector = new FacetsCollector();
        IndexSearcher searcher = new IndexSearcher(reader);
        searcher.search(query, facetsCollector);

        Facets facets = new SortedSetDocValuesFacetCounts(
                new DefaultSortedSetDocValuesReaderState(reader, FeatureIndexFields.FACET_UID.fieldName),
                facetsCollector);
        FacetResult res = facets.getTopChildren(reader.numDocs(), FeatureIndexFields.F_UID.getFieldName());
        if (res == null) {
            return 0;
        }

        return res.childCount;
    } finally {
        for (SimpleFSDirectory index : indexes) {
            IOUtils.closeQuietly(index);
        }
    }
}

From source file:com.epam.catgenome.dao.index.FeatureIndexDao.java

License:Open Source License

/**
 * Returns a {@code List} of chromosome IDs for a project, specified by ID, where variations exist and satisfy a
 * specified query/*from   w w  w.ja  v  a  2 s .  co m*/
 *
 * @param projectId an ID of a project, which index to query
 * @param query     a query to filter variations
 * @return a {@code List} of chromosome IDs
 * @throws IOException
 */
public List<Long> getChromosomeIdsWhereVariationsPresentFacet(long projectId, Query query) throws IOException {
    List<Long> chromosomeIds = new ArrayList<>();

    try (Directory index = fileManager.getIndexForProject(projectId);
            IndexReader reader = DirectoryReader.open(index)) {
        if (reader.numDocs() == 0) {
            return Collections.emptyList();
        }

        FacetsCollector facetsCollector = new FacetsCollector();
        IndexSearcher searcher = new IndexSearcher(reader);
        searcher.search(query, facetsCollector);

        Facets facets = new SortedSetDocValuesFacetCounts(new DefaultSortedSetDocValuesReaderState(reader,
                FeatureIndexFields.FACET_CHR_ID.getFieldName()), facetsCollector);
        FacetResult res = facets.getTopChildren(FACET_LIMIT, FeatureIndexFields.CHR_ID.getFieldName());
        if (res == null) {
            return Collections.emptyList();
        }

        for (LabelAndValue labelAndValue : res.labelValues) {
            chromosomeIds.add(Long.parseLong(labelAndValue.label));
        }
    }

    return chromosomeIds;
}

From source file:com.epam.catgenome.dao.index.FeatureIndexDao.java

License:Open Source License

/**
 * Returns a {@code List} of chromosome IDs from specified files, where variations exist and satisfy a
 * specified query//from w ww  .  ja  v  a2s  .  co  m
 *
 * @param files a list of {@link FeatureFile}s to search chromosomes
 * @param query     a query to filter variations
 * @return a {@code List} of chromosome IDs
 * @throws IOException
 */
public List<Long> getChromosomeIdsWhereVariationsPresentFacet(List<? extends FeatureFile> files, Query query)
        throws IOException {
    if (CollectionUtils.isEmpty(files)) {
        return Collections.emptyList();
    }

    List<Long> chromosomeIds = new ArrayList<>();

    SimpleFSDirectory[] indexes = fileManager.getIndexesForFiles(files);

    try (MultiReader reader = openMultiReader(indexes)) {
        if (reader.numDocs() == 0) {
            return Collections.emptyList();
        }

        FacetsCollector facetsCollector = new FacetsCollector();
        IndexSearcher searcher = new IndexSearcher(reader);
        searcher.search(query, facetsCollector);

        Facets facets = new SortedSetDocValuesFacetCounts(new DefaultSortedSetDocValuesReaderState(reader,
                FeatureIndexFields.FACET_CHR_ID.getFieldName()), facetsCollector);
        FacetResult res = facets.getTopChildren(FACET_LIMIT, FeatureIndexFields.CHR_ID.getFieldName());
        if (res == null) {
            return Collections.emptyList();
        }

        for (LabelAndValue labelAndValue : res.labelValues) {
            chromosomeIds.add(Long.parseLong(labelAndValue.label));
        }
    } finally {
        closeIndexes(indexes);
    }

    return chromosomeIds;
}

From source file:com.qwazr.search.index.IndexUtils.java

License:Apache License

final static SortedSetDocValuesReaderState getNewFacetsState(IndexReader indexReader) throws IOException {
    LeafReader topReader = SlowCompositeReaderWrapper.wrap(indexReader);
    if (topReader == null)
        return null;
    SortedSetDocValues dv = topReader.getSortedSetDocValues(FieldDefinition.FACET_FIELD);
    if (dv == null)
        return null;
    return new DefaultSortedSetDocValuesReaderState(indexReader, FieldDefinition.FACET_FIELD);
}

From source file:com.searchcode.app.service.CodeSearcher.java

License:Open Source License

/**
 * Returns the matching language facets for a given query
 *//*from   w w  w  .j ava2  s.  c  o  m*/
private List<CodeFacetLanguage> getLanguageFacetResults(IndexSearcher searcher, IndexReader reader,
        Query query) {
    List<CodeFacetLanguage> codeFacetLanguages = new ArrayList<>();

    try {
        SortedSetDocValuesReaderState state = new DefaultSortedSetDocValuesReaderState(reader,
                Values.LANGUAGENAME);
        FacetsCollector fc = new FacetsCollector();
        FacetsCollector.search(searcher, query, 10, fc);
        Facets facets = new SortedSetDocValuesFacetCounts(state, fc);
        FacetResult result = facets.getTopChildren(200, Values.LANGUAGENAME);

        if (result != null) {
            int stepThru = result.childCount > 200 ? 200 : result.childCount;

            for (int i = 0; i < stepThru; i++) {
                LabelAndValue lv = result.labelValues[i];

                if (lv != null && lv.value != null) {
                    codeFacetLanguages.add(new CodeFacetLanguage(lv.label, lv.value.intValue()));
                }
            }
        }
    } catch (IOException ex) {
    } catch (Exception ex) {
    }

    return codeFacetLanguages;
}

From source file:com.searchcode.app.service.CodeSearcher.java

License:Open Source License

/**
 * Returns the matching repository facets for a given query
 *///from  w  w w .j  av a  2 s  .  co  m
private List<CodeFacetRepo> getRepoFacetResults(IndexSearcher searcher, IndexReader reader, Query query) {
    List<CodeFacetRepo> codeFacetRepo = new ArrayList<>();

    try {
        SortedSetDocValuesReaderState state = new DefaultSortedSetDocValuesReaderState(reader, Values.REPONAME);
        FacetsCollector fc = new FacetsCollector();
        FacetsCollector.search(searcher, query, 10, fc);
        Facets facets = new SortedSetDocValuesFacetCounts(state, fc);
        FacetResult result = facets.getTopChildren(200, Values.REPONAME);

        if (result != null) {
            int stepThru = result.childCount > 200 ? 200 : result.childCount;

            for (int i = 0; i < stepThru; i++) {
                LabelAndValue lv = result.labelValues[i];

                if (lv != null && lv.value != null) {
                    codeFacetRepo.add(new CodeFacetRepo(lv.label, lv.value.intValue()));
                }
            }
        }
    } catch (IOException ex) {
    } catch (Exception ex) {
    }

    return codeFacetRepo;
}

From source file:com.searchcode.app.service.CodeSearcher.java

License:Open Source License

/**
 * Returns the matching owner facets for a given query
 *//*  w w w.jav a  2s. c o  m*/
private List<CodeFacetOwner> getOwnerFacetResults(IndexSearcher searcher, IndexReader reader, Query query) {
    List<CodeFacetOwner> codeFacetRepo = new ArrayList<>();

    try {
        SortedSetDocValuesReaderState state = new DefaultSortedSetDocValuesReaderState(reader,
                Values.CODEOWNER);
        FacetsCollector fc = new FacetsCollector();
        FacetsCollector.search(searcher, query, 10, fc);
        Facets facets = new SortedSetDocValuesFacetCounts(state, fc);
        FacetResult result = facets.getTopChildren(200, Values.CODEOWNER);

        if (result != null) {
            int stepThru = result.childCount > 200 ? 200 : result.childCount;

            for (int i = 0; i < stepThru; i++) {
                LabelAndValue lv = result.labelValues[i];

                if (lv != null && lv.value != null) {
                    codeFacetRepo.add(new CodeFacetOwner(lv.label, lv.value.intValue()));
                }
            }
        }
    } catch (IOException ex) {
    } catch (Exception ex) {
    }

    return codeFacetRepo;
}

From source file:com.searchcode.app.service.TimeCodeSearcher.java

/**
 * Returns the matching revision facets for a given query
 *//*from   w  ww  .  j a va  2 s. com*/
private List<CodeFacetDeleted> getDeletedFacetResults(IndexSearcher searcher, IndexReader reader, Query query) {
    List<CodeFacetDeleted> deletedFacets = new ArrayList<>();

    try {
        SortedSetDocValuesReaderState state = new DefaultSortedSetDocValuesReaderState(reader, Values.DELETED);
        FacetsCollector fc = new FacetsCollector();
        FacetsCollector.search(searcher, query, 10, fc);
        Facets facets = new SortedSetDocValuesFacetCounts(state, fc);
        FacetResult result = facets.getTopChildren(200, Values.DELETED);

        if (result != null) {
            int stepThru = result.childCount > 200 ? 200 : result.childCount;

            for (int i = 0; i < stepThru; i++) {
                LabelAndValue lv = result.labelValues[i];

                if (lv != null && lv.value != null) {
                    deletedFacets.add(new CodeFacetDeleted(lv.label, lv.value.intValue()));
                }
            }
        }
    } catch (IOException ex) {
        LOGGER.warning(" caught a " + ex.getClass() + "\n with message: " + ex.getMessage());
    } catch (Exception ex) {
        LOGGER.warning(" caught a " + ex.getClass() + "\n with message: " + ex.getMessage());
    }

    return deletedFacets;
}

From source file:com.searchcode.app.service.TimeCodeSearcher.java

/**
 * Returns the matching revision facets for a given query
 *//*from  w ww. j  a  v  a  2  s  .  c om*/
private List<CodeFacetRevision> getRevisionFacetResults(IndexSearcher searcher, IndexReader reader,
        Query query) {
    List<CodeFacetRevision> revisionFacets = new ArrayList<>();

    try {
        SortedSetDocValuesReaderState state = new DefaultSortedSetDocValuesReaderState(reader, Values.REVISION);
        FacetsCollector fc = new FacetsCollector();
        FacetsCollector.search(searcher, query, 10, fc);
        Facets facets = new SortedSetDocValuesFacetCounts(state, fc);
        FacetResult result = facets.getTopChildren(200, Values.REVISION);

        if (result != null) {
            int stepThru = result.childCount > 200 ? 200 : result.childCount;

            for (int i = 0; i < stepThru; i++) {
                LabelAndValue lv = result.labelValues[i];

                if (lv != null && lv.value != null) {
                    revisionFacets.add(new CodeFacetRevision(lv.label, lv.value.intValue()));
                }
            }
        }
    } catch (IOException ex) {
        LOGGER.warning(" caught a " + ex.getClass() + "\n with message: " + ex.getMessage());
    } catch (Exception ex) {
        LOGGER.warning(" caught a " + ex.getClass() + "\n with message: " + ex.getMessage());
    }

    return revisionFacets;
}

From source file:com.searchcode.app.service.TimeCodeSearcher.java

/**
 * Returns the matching yearmonth facets for a given query
 *///  w w  w .ja  va  2s.  c  o m
private List<CodeFacetYear> getYearFacetResults(IndexSearcher searcher, IndexReader reader, Query query) {
    List<CodeFacetYear> codeFacetYear = new ArrayList<>();

    try {
        SortedSetDocValuesReaderState state = new DefaultSortedSetDocValuesReaderState(reader, Values.DATEYEAR);
        FacetsCollector fc = new FacetsCollector();
        FacetsCollector.search(searcher, query, 10, fc);
        Facets facets = new SortedSetDocValuesFacetCounts(state, fc);
        FacetResult result = facets.getTopChildren(200, Values.DATEYEAR);

        if (result != null) {
            int stepThru = result.childCount > 200 ? 200 : result.childCount;

            for (int i = 0; i < stepThru; i++) {
                LabelAndValue lv = result.labelValues[i];

                if (lv != null && lv.value != null) {
                    codeFacetYear.add(new CodeFacetYear(lv.label, lv.value.intValue()));
                }
            }
        }
    } catch (IOException ex) {
        LOGGER.warning(" caught a " + ex.getClass() + "\n with message: " + ex.getMessage());
    } catch (Exception ex) {
        LOGGER.warning(" caught a " + ex.getClass() + "\n with message: " + ex.getMessage());
    }

    return codeFacetYear;
}