List of usage examples for org.apache.lucene.facet.sortedset DefaultSortedSetDocValuesReaderState DefaultSortedSetDocValuesReaderState
public DefaultSortedSetDocValuesReaderState(IndexReader reader, String field) throws IOException
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; }