mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-06-16 17:55:15 +00:00
Slight fix-up to getTopTerms result iterator (it was skipping over the first result)
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@7474 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
parent
d3d6959d6a
commit
1e89a663ef
@ -742,26 +742,42 @@ public class ADMLuceneSearcherImpl extends AbstractLuceneBase implements LuceneS
|
|||||||
searcher = getSearcher(indexer);
|
searcher = getSearcher(indexer);
|
||||||
IndexReader reader = searcher.getIndexReader();
|
IndexReader reader = searcher.getIndexReader();
|
||||||
TermEnum terms = reader.terms(new Term(field, ""));
|
TermEnum terms = reader.terms(new Term(field, ""));
|
||||||
while (terms.next())
|
do
|
||||||
{
|
{
|
||||||
Term term = terms.term();
|
Term term = terms.term();
|
||||||
if(!term.field().equals(field))
|
if (term != null)
|
||||||
{
|
{
|
||||||
break;
|
if(!term.field().equals(field))
|
||||||
}
|
|
||||||
int freq = terms.docFreq();
|
|
||||||
Pair<String, Integer> pair = new Pair<String, Integer>(term.text(), Integer.valueOf(freq));
|
|
||||||
if (answer.size() < count)
|
|
||||||
{
|
|
||||||
if (answer.size() == 0)
|
|
||||||
{
|
{
|
||||||
answer.add(pair);
|
break;
|
||||||
}
|
}
|
||||||
else if (answer.get(answer.size() - 1).getSecond().compareTo(pair.getSecond()) >= 0)
|
int freq = terms.docFreq();
|
||||||
|
Pair<String, Integer> pair = new Pair<String, Integer>(term.text(), Integer.valueOf(freq));
|
||||||
|
if (answer.size() < count)
|
||||||
{
|
{
|
||||||
answer.add(pair);
|
if (answer.size() == 0)
|
||||||
|
{
|
||||||
|
answer.add(pair);
|
||||||
|
}
|
||||||
|
else if (answer.get(answer.size() - 1).getSecond().compareTo(pair.getSecond()) >= 0)
|
||||||
|
{
|
||||||
|
answer.add(pair);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
for (ListIterator<Pair<String, Integer>> it = answer.listIterator(); it.hasNext(); /**/)
|
||||||
|
{
|
||||||
|
Pair<String, Integer> test = it.next();
|
||||||
|
if (test.getSecond().compareTo(pair.getSecond()) < 0)
|
||||||
|
{
|
||||||
|
it.previous();
|
||||||
|
it.add(pair);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else if (answer.get(count - 1).getSecond().compareTo(pair.getSecond()) < 0)
|
||||||
{
|
{
|
||||||
for (ListIterator<Pair<String, Integer>> it = answer.listIterator(); it.hasNext(); /**/)
|
for (ListIterator<Pair<String, Integer>> it = answer.listIterator(); it.hasNext(); /**/)
|
||||||
{
|
{
|
||||||
@ -773,27 +789,14 @@ public class ADMLuceneSearcherImpl extends AbstractLuceneBase implements LuceneS
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
answer.removeLast();
|
||||||
}
|
}
|
||||||
}
|
else
|
||||||
else if (answer.get(count - 1).getSecond().compareTo(pair.getSecond()) < 0)
|
|
||||||
{
|
|
||||||
for (ListIterator<Pair<String, Integer>> it = answer.listIterator(); it.hasNext(); /**/)
|
|
||||||
{
|
{
|
||||||
Pair<String, Integer> test = it.next();
|
// off the end
|
||||||
if (test.getSecond().compareTo(pair.getSecond()) < 0)
|
|
||||||
{
|
|
||||||
it.previous();
|
|
||||||
it.add(pair);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
answer.removeLast();
|
|
||||||
}
|
}
|
||||||
else
|
} while (terms.next());
|
||||||
{
|
|
||||||
// off the end
|
|
||||||
}
|
|
||||||
}
|
|
||||||
terms.close();
|
terms.close();
|
||||||
return answer;
|
return answer;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user