org.apache.lucene.util.BytesRefHash.sort()方法的使用及代码示例

x33g5p2x  于2022-01-17 转载在 其他  
字(9.5k)|赞(0)|评价(0)|浏览(109)

本文整理了Java中org.apache.lucene.util.BytesRefHash.sort()方法的一些代码示例,展示了BytesRefHash.sort()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。BytesRefHash.sort()方法的具体详情如下:
包路径:org.apache.lucene.util.BytesRefHash
类名称:BytesRefHash
方法名:sort

BytesRefHash.sort介绍

[英]Returns the values array sorted by the referenced byte values.

Note: This is a destructive operation. #clear() must be called in order to reuse this BytesRefHash instance.
[中]

代码示例

代码示例来源:origin: org.apache.lucene/lucene-core

/** Collapse the hash table and sort in-place; also sets
 * this.sortedTermIDs to the results */
public int[] sortPostings() {
 sortedTermIDs = bytesHash.sort();
 return sortedTermIDs;
}

代码示例来源:origin: org.apache.lucene/lucene-core

@Override
Sorter.DocComparator getDocComparator(int maxDoc, SortField sortField) throws IOException {
 assert sortField.getType().equals(SortField.Type.STRING);
 assert finalSortedValues == null && finalOrdMap == null &&finalOrds == null;
 int valueCount = hash.size();
 finalSortedValues = hash.sort();
 finalOrds = pending.build();
 finalOrdMap = new int[valueCount];
 for (int ord = 0; ord < valueCount; ord++) {
  finalOrdMap[finalSortedValues[ord]] = ord;
 }
 final SortedDocValues docValues =
   new BufferedSortedDocValues(hash, valueCount, finalOrds, finalSortedValues, finalOrdMap,
     docsWithField.iterator());
 return Sorter.getDocComparator(maxDoc, sortField, () -> docValues, () -> null);
}

代码示例来源:origin: org.apache.lucene/lucene-core

@Override
Sorter.DocComparator getDocComparator(int maxDoc, SortField sortField) throws IOException {
 assert sortField instanceof SortedSetSortField;
 assert finalOrds == null && finalOrdCounts == null && finalSortedValues == null && finalOrdMap == null;
 int valueCount = hash.size();
 finalOrds = pending.build();
 finalOrdCounts = pendingCounts.build();
 finalSortedValues = hash.sort();
 finalOrdMap = new int[valueCount];
 for (int ord = 0; ord < valueCount; ord++) {
  finalOrdMap[finalSortedValues[ord]] = ord;
 }
 SortedSetSortField sf = (SortedSetSortField) sortField;
 final SortedSetDocValues dvs =
   new BufferedSortedSetDocValues(finalSortedValues, finalOrdMap, hash, finalOrds, finalOrdCounts, maxCount, docsWithField.iterator());
 return Sorter.getDocComparator(maxDoc, sf, () -> SortedSetSelector.wrap(dvs, sf.getSelector()), () -> null);
}

代码示例来源:origin: org.apache.lucene/lucene-core

@Override
public final Query rewrite(final IndexReader reader, final MultiTermQuery query) throws IOException {
 final B builder = getTopLevelBuilder();
 final ParallelArraysTermCollector col = new ParallelArraysTermCollector();
 collectTerms(reader, query, col);
 
 final int size = col.terms.size();
 if (size > 0) {
  final int sort[] = col.terms.sort();
  final float[] boost = col.array.boost;
  final TermContext[] termStates = col.array.termState;
  for (int i = 0; i < size; i++) {
   final int pos = sort[i];
   final Term term = new Term(query.getField(), col.terms.get(pos, new BytesRef()));
   assert reader.docFreq(term) == termStates[pos].docFreq();
   addClause(builder, term, termStates[pos].docFreq(), boost[pos], termStates[pos]);
  }
 }
 return build(builder);
}

代码示例来源:origin: org.apache.lucene/lucene-core

final int[] ordMap;
if (finalOrds == null) {
 sortedValues = hash.sort();
 ords = pending.build();
 ordMap = new int[valueCount];

代码示例来源:origin: org.apache.lucene/lucene-core

ords = pending.build();
ordCounts = pendingCounts.build();
sortedValues = hash.sort();
ordMap = new int[valueCount];
for(int ord=0;ord<valueCount;ord++) {

代码示例来源:origin: org.apache.lucene/lucene-memory

/**
 * Sorts hashed terms into ascending order, reusing memory along the
 * way. Note that sorting is lazily delayed until required (often it's
 * not required at all). If a sorted view is required then hashing +
 * sort + binary search is still faster and smaller than TreeMap usage
 * (which would be an alternative and somewhat more elegant approach,
 * apart from more sophisticated Tries / prefix trees).
 */
void sortTerms() {
 if (sortedTerms == null) {
  sortedTerms = terms.sort();
 }
}

代码示例来源:origin: org.apache.servicemix.bundles/org.apache.servicemix.bundles.lucene

/** Collapse the hash table and sort in-place; also sets
 * this.sortedTermIDs to the results */
public int[] sortPostings() {
 sortedTermIDs = bytesHash.sort();
 return sortedTermIDs;
}

代码示例来源:origin: flaxsearch/luwak

public BytesRefHashIterator(BytesRefHash terms) {
  this.terms = terms;
  this.sortedTerms = terms.sort();
}

代码示例来源:origin: org.apache.lucene/lucene-memory

private void prepareForUsage() {
 bytesIds = dvBytesValuesSet.sort();
}

代码示例来源:origin: org.apache.lucene/lucene-analyzers-common

/**
 * Returns an {@link StemmerOverrideMap} to be used with the {@link StemmerOverrideFilter}
 * @return an {@link StemmerOverrideMap} to be used with the {@link StemmerOverrideFilter}
 * @throws IOException if an {@link IOException} occurs;
 */
public StemmerOverrideMap build() throws IOException {
 ByteSequenceOutputs outputs = ByteSequenceOutputs.getSingleton();
 org.apache.lucene.util.fst.Builder<BytesRef> builder = new org.apache.lucene.util.fst.Builder<>(
   FST.INPUT_TYPE.BYTE4, outputs);
 final int[] sort = hash.sort();
 IntsRefBuilder intsSpare = new IntsRefBuilder();
 final int size = hash.size();
 BytesRef spare = new BytesRef();
 for (int i = 0; i < size; i++) {
  int id = sort[i];
  BytesRef bytesRef = hash.get(id, spare);
  intsSpare.copyUTF8Bytes(bytesRef);
  builder.add(intsSpare.get(), new BytesRef(outputValues.get(id)));
 }
 return new StemmerOverrideMap(builder.finish(), ignoreCase);
}

代码示例来源:origin: org.infinispan/infinispan-embedded-query

/** Collapse the hash table and sort in-place; also sets
 * this.sortedTermIDs to the results */
public int[] sortPostings() {
 sortedTermIDs = bytesHash.sort(BytesRef.getUTF8SortedAsUnicodeComparator());
 return sortedTermIDs;
}

代码示例来源:origin: harbby/presto-connectors

TermsIncludingScoreQuery(String field, boolean multipleValuesPerDocument, BytesRefHash terms, float[] scores, Query originalQuery) {
 this.field = field;
 this.multipleValuesPerDocument = multipleValuesPerDocument;
 this.terms = terms;
 this.scores = scores;
 this.originalQuery = originalQuery;
 this.ords = terms.sort(BytesRef.getUTF8SortedAsUnicodeComparator());
 this.unwrittenOriginalQuery = originalQuery;
}

代码示例来源:origin: harbby/presto-connectors

/**
 * @param field The field that should contain terms that are specified in the previous parameter
 * @param terms The terms that matching documents should have. The terms must be sorted by natural order.
 */
TermsQuery(String field, Query fromQuery, BytesRefHash terms) {
 super(field);
 this.fromQuery = fromQuery;
 this.terms = terms;
 ords = terms.sort(BytesRef.getUTF8SortedAsUnicodeComparator());
}

代码示例来源:origin: harbby/presto-connectors

/** Collapse the hash table and sort in-place; also sets
 * this.sortedTermIDs to the results */
public int[] sortPostings() {
 sortedTermIDs = bytesHash.sort(BytesRef.getUTF8SortedAsUnicodeComparator());
 return sortedTermIDs;
}

代码示例来源:origin: harbby/presto-connectors

/**
 * Sorts hashed terms into ascending order, reusing memory along the
 * way. Note that sorting is lazily delayed until required (often it's
 * not required at all). If a sorted view is required then hashing +
 * sort + binary search is still faster and smaller than TreeMap usage
 * (which would be an alternative and somewhat more elegant approach,
 * apart from more sophisticated Tries / prefix trees).
 */
public void sortTerms() {
 if (sortedTerms == null) {
  sortedTerms = terms.sort(BytesRef.getUTF8SortedAsUnicodeComparator());
 }
}

代码示例来源:origin: sirensolutions/siren-join

SeekingTermSetTermsEnum(TermsEnum tenum, BytesRefTermsSet termsSet) {
 super(tenum);
 this.terms = termsSet.getBytesRefHash();
 this.ords = this.terms.sort(BytesRef.getUTF8SortedAsUnicodeComparator());
 lastElement = terms.size() - 1;
 lastTerm = terms.get(ords[lastElement], new BytesRef());
 seekTerm = terms.get(ords[upto], spare);
}

代码示例来源:origin: org.apache.servicemix.bundles/org.apache.servicemix.bundles.lucene

@Override
Sorter.DocComparator getDocComparator(int maxDoc, SortField sortField) throws IOException {
 assert sortField.getType().equals(SortField.Type.STRING);
 assert finalSortedValues == null && finalOrdMap == null &&finalOrds == null;
 int valueCount = hash.size();
 finalSortedValues = hash.sort();
 finalOrds = pending.build();
 finalOrdMap = new int[valueCount];
 for (int ord = 0; ord < valueCount; ord++) {
  finalOrdMap[finalSortedValues[ord]] = ord;
 }
 final SortedDocValues docValues =
   new BufferedSortedDocValues(hash, valueCount, finalOrds, finalSortedValues, finalOrdMap,
     docsWithField.iterator());
 return Sorter.getDocComparator(maxDoc, sortField, () -> docValues, () -> null);
}

代码示例来源:origin: org.apache.servicemix.bundles/org.apache.servicemix.bundles.lucene

@Override
Sorter.DocComparator getDocComparator(int maxDoc, SortField sortField) throws IOException {
 assert sortField instanceof SortedSetSortField;
 assert finalOrds == null && finalOrdCounts == null && finalSortedValues == null && finalOrdMap == null;
 int valueCount = hash.size();
 finalOrds = pending.build();
 finalOrdCounts = pendingCounts.build();
 finalSortedValues = hash.sort();
 finalOrdMap = new int[valueCount];
 for (int ord = 0; ord < valueCount; ord++) {
  finalOrdMap[finalSortedValues[ord]] = ord;
 }
 SortedSetSortField sf = (SortedSetSortField) sortField;
 final SortedSetDocValues dvs =
   new BufferedSortedSetDocValues(finalSortedValues, finalOrdMap, hash, finalOrds, finalOrdCounts, maxCount, docsWithField.iterator());
 return Sorter.getDocComparator(maxDoc, sf, () -> SortedSetSelector.wrap(dvs, sf.getSelector()), () -> null);
}

代码示例来源:origin: org.infinispan/infinispan-embedded-query

@Override
public final Query rewrite(final IndexReader reader, final MultiTermQuery query) throws IOException {
 final B builder = getTopLevelBuilder();
 final ParallelArraysTermCollector col = new ParallelArraysTermCollector();
 collectTerms(reader, query, col);
 
 final int size = col.terms.size();
 if (size > 0) {
  final int sort[] = col.terms.sort(BytesRef.getUTF8SortedAsUnicodeComparator());
  final float[] boost = col.array.boost;
  final TermContext[] termStates = col.array.termState;
  for (int i = 0; i < size; i++) {
   final int pos = sort[i];
   final Term term = new Term(query.getField(), col.terms.get(pos, new BytesRef()));
   assert termStates[pos].hasOnlyRealTerms() == false || reader.docFreq(term) == termStates[pos].docFreq();
   addClause(builder, term, termStates[pos].docFreq(), boost[pos], termStates[pos]);
  }
 }
 return build(builder);
}

相关文章