public void clear() { memoryIndex.reset(); fieldStats.clear(); } /*
public LuceneTokenCounter(Analyzer generalAnalyzer) throws IOException { memoryIndex = new MemoryIndex(); IndexSearcher searcher = memoryIndex.createSearcher(); leafReader = (LeafReader)searcher.getIndexReader(); this.generalAnalyzer = generalAnalyzer; }
public void add(String field, String content) throws IOException { memoryIndex.addField(field, content, generalAnalyzer); //memoryIndex.addField(field+ALPHA_IDEOGRAPH_SUFFIX, // content, alphaIdeographAnalyzer); count(field); //count(field+ALPHA_IDEOGRAPH_SUFFIX); }
MemoryIndex index = new MemoryIndex(withOffsets); for (Map.Entry<String, Collection<Object>> entry : values.entrySet()) { String field = entry.getKey(); if (entry.getValue() instanceof List) { for (Object text : entry.getValue()) { index.addField(field, text.toString(), analyzer); index.addField(field, entry.getValue().toString(), analyzer); return MultiFields.getFields(index.createSearcher().getIndexReader());
/** * Builds a MemoryIndex from a lucene {@link Document} using an analyzer * * @param document the document to index * @param analyzer the analyzer to use * @return a MemoryIndex */ public static MemoryIndex fromDocument(Iterable<? extends IndexableField> document, Analyzer analyzer) { return fromDocument(document, analyzer, false, false, 0); }
@Override public PostingsEnum postings(PostingsEnum reuse, int flags) { if (reuse == null || !(reuse instanceof MemoryPostingsEnum)) { reuse = new MemoryPostingsEnum(); } final int ord = info.sortedTerms[termUpto]; return ((MemoryPostingsEnum) reuse).reset(info.sliceArray.start[ord], info.sliceArray.end[ord], info.sliceArray.freq[ord]); }
private Info(FieldInfo fieldInfo, ByteBlockPool byteBlockPool) { this.fieldInfo = fieldInfo; this.sliceArray = new SliceByteStartArray(BytesRefHash.DEFAULT_CAPACITY); this.terms = new BytesRefHash(byteBlockPool, BytesRefHash.DEFAULT_CAPACITY, sliceArray);; this.binaryProducer = new BinaryDocValuesProducer(); this.numericProducer = new NumericDocValuesProducer(); }
@Override public TermsEnum iterator() { return new MemoryTermsEnum(info); }
@Override public boolean advanceExact(int target) throws IOException { ord = 0; return it.advance(target) == target; }
@Override public SortedSetDocValues getSortedSetDocValues(String field) { Info info = getInfoForExpectedDocValuesType(field, DocValuesType.SORTED_SET); if (info != null) { return sortedSetDocValues(info.binaryProducer.dvBytesValuesSet, info.binaryProducer.bytesIds); } else { return null; } }
int nextDoc() { doc++; return docId(); }
@Override public Terms terms(String field) throws IOException { return memoryFields.terms(field); }
@Override public Fields getTermVectors(int docID) { if (docID == 0) { return fields(); } else { return null; } }
@Override public int nextDoc() throws IOException { return it.nextDoc(); }
/** * Builds a MemoryIndex from a lucene {@link Document} using an analyzer * @param document the document to index * @param analyzer the analyzer to use * @param storeOffsets <code>true</code> if offsets should be stored * @param storePayloads <code>true</code> if payloads should be stored * @return a MemoryIndex */ public static MemoryIndex fromDocument(Iterable<? extends IndexableField> document, Analyzer analyzer, boolean storeOffsets, boolean storePayloads) { return fromDocument(document, analyzer, storeOffsets, storePayloads, 0); }
@Override public boolean advanceExact(int target) throws IOException { ord = 0; return it.advance(target) == target; }
@Override public SortedNumericDocValues getSortedNumericDocValues(String field) { Info info = getInfoForExpectedDocValuesType(field, DocValuesType.SORTED_NUMERIC); if (info != null) { return numericDocValues(info.numericProducer.dvLongValues, info.numericProducer.count); } else { return null; } }
@Override public int docID() { return it.docId(); }
/** * Builds a MemoryIndex from a lucene {@link Document} using an analyzer * * @param document the document to index * @param analyzer the analyzer to use * @return a MemoryIndex */ public static MemoryIndex fromDocument(Document document, Analyzer analyzer) { return fromDocument(document, analyzer, false, false, 0); }
@Override public boolean advanceExact(int target) throws IOException { return it.advance(target) == target; }