aaahd 发表于 2017-1-12 07:47:44

org.apache.lucene.search.Hits.java搜索索引


[*]
[*]
[*]/**
[*]*TriestoaddnewdocumentstohitDocs.
[*]*Ensuresthatthehitnumbered<code>min</code>hasbeenretrieved.
[*]*/
[*]privatefinalvoidgetMoreDocs(intmin)throwsIOException{
[*]if(hitDocs.size()>min){
[*]min=hitDocs.size();
[*]}
[*]
[*]intn=min*2;//double#retrieved
[*]TopDocstopDocs=(sort==null)?searcher.search(weight,filter,n):
[*]searcher.search(weight,filter,n,sort);
[*]
[*]length=topDocs.totalHits;
[*]ScoreDoc[]scoreDocs=topDocs.scoreDocs;
[*]
[*]floatscoreNorm=1.0f;
[*]
[*]if(length>0&&topDocs.getMaxScore()>1.0f){
[*]scoreNorm=1.0f/topDocs.getMaxScore();
[*]}
[*]
[*]intstart=hitDocs.size()-nDeletedHits;
[*]
[*]//anynewdeletions?
[*]intnDels2=countDeletions(searcher);
[*]debugCheckedForDeletions=false;
[*]if(nDeletions<0||nDels2>nDeletions){
[*]//eitherwecannotcountdeletions,orsome"previouslyvalidhits"
[*]mighthavebeendeleted,sofindexactstartpoint
[*]nDeletedHits=0;
[*]debugCheckedForDeletions=true;
[*]inti2=0;
[*]for(inti1=0;i1<hitDocs.size()&&i2<scoreDocs.length;i1++){
[*]intid1=((HitDoc)hitDocs.get(i1)).id;
[*]intid2=scoreDocs.doc;
[*]if(id1==id2){
[*]i2++;
[*]}else{
[*]nDeletedHits++;
[*]}
[*]}
[*]start=i2;
[*]}
[*]
[*]intend=scoreDocs.length<length?scoreDocs.length:length;
[*]length+=nDeletedHits;
[*]for(inti=start;i<end;i++){
[*]hitDocs.addElement(newHitDoc(scoreDocs.score*scoreNorm,
[*]scoreDocs.doc));
[*]}
[*]
[*]nDeletions=nDels2;
[*]}
页: [1]
查看完整版本: org.apache.lucene.search.Hits.java搜索索引