"pool-13-thread-1" prio=10 tid=0x00000000444e0000 nid=0x38d9 runnable [0x000000004293c000] java.lang.Thread.State: RUNNABLE at org.apache.lucene.util.UnicodeUtil.UTF8toUTF16(UnicodeUtil.java:541) at org.apache.lucene.index.TermBuffer.read(TermBuffer.java:83) at org.apache.lucene.index.SegmentTermEnum.next(SegmentTermEnum.java:133) at org.apache.lucene.index.SegmentTermEnum.scanTo(SegmentTermEnum.java:174) at org.apache.lucene.index.TermInfosReader.get(TermInfosReader.java:202) at org.apache.lucene.index.TermInfosReader.get(TermInfosReader.java:172) at org.apache.lucene.index.SegmentTermDocs.seek(SegmentTermDocs.java:66) at org.apache.lucene.search.MultiTermQueryWrapperFilter.getDocIdSet(MultiTermQueryWrapperFilter.java:125) at org.apache.lucene.search.ConstantScoreQuery$ConstantWeight.scorer(ConstantScoreQuery.java:139) at org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:577) at org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:364) at org.apache.solr.search.SolrIndexSearcher.getDocSetNC(SolrIndexSearcher.java:863) at org.apache.solr.search.SolrIndexSearcher.getDocSet(SolrIndexSearcher.java:617) at org.apache.solr.search.SolrIndexSearcher.cacheDocSet(SolrIndexSearcher.java:581) at org.apache.solr.search.SolrIndexSearcher$2.regenerateItem(SolrIndexSearcher.java:330) at org.apache.solr.search.LRUCache.warm(LRUCache.java:195) at org.apache.solr.search.SolrIndexSearcher.warm(SolrIndexSearcher.java:1815) at org.apache.solr.core.SolrCore$2.call(SolrCore.java:1166) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) at java.util.concurrent.FutureTask.run(FutureTask.java:138) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:662)
org.apache.lucene.search.MultiTermQueryWrapperFilter.getDocIdSet(MultiTermQueryWrapperFilter.java:136):
@Override public DocIdSet getDocIdSet(IndexReader reader) throws IOException { final TermEnum enumerator = query.getEnum(reader); try { // if current term in enum is null, the enum is empty -> shortcut if (enumerator.term() == null) return DocIdSet.EMPTY_DOCIDSET; // else fill into a FixedBitSet final FixedBitSet bitSet = new FixedBitSet(reader.maxDoc()); final int[] docs = new int[32]; final int[] freqs = new int[32]; TermDocs termDocs = reader.termDocs(); try { int termCount = 0; do { Term term = enumerator.term(); if (term == null) break; termCount++; termDocs.seek(term); while (true) { final int count = termDocs.read(docs, freqs); if (count != 0) { for(int i=0;i<count;i++) { bitSet.set(docs[i]); } } else { break; } } } while (enumerator.next()); //L136 query.incTotalNumberOfTerms(termCount); } finally { termDocs.close(); } return bitSet; } finally { enumerator.close(); } }
org.apache.lucene.search.IndexSearcher.search()的执行时间:
Search .execute time is:720ms Search .execute time is:758ms Search .execute time is:758ms Search .execute time is:3ms Search .execute time is:4ms Search .execute time is:804ms Search .execute time is:804ms Search .execute time is:863ms Search .execute time is:863ms Search .execute time is:816ms Search .execute time is:816ms Search .execute time is:923ms Search .execute time is:923ms Search .execute time is:829ms Search .execute time is:829ms Search .execute time is:929ms Search .execute time is:929ms Search .execute time is:1000ms Search .execute time is:1000ms Search .execute time is:1ms Search .execute time is:1ms Search .execute time is:796ms Search .execute time is:796ms Search .execute time is:728ms Search .execute time is:728ms Search .execute time is:750ms Search .execute time is:750ms Search .execute time is:6ms Search .execute time is:6ms Search .execute time is:745ms Search .execute time is:745ms