Skip to content

Commit 4cf8830

Browse files
tarzanekVladimir Kotal
authored andcommitted
lucene 8.2.0
1 parent 114d3a0 commit 4cf8830

File tree

12 files changed

+47
-38
lines changed

12 files changed

+47
-38
lines changed

opengrok-indexer/src/main/java/org/opengrok/indexer/index/IndexAnalysisSettingsAccessor.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ public IndexAnalysisSettings[] read(IndexReader reader, int n)
9090
}
9191
TopDocs top = searcher.search(q, n);
9292

93-
int nres = top.totalHits > n ? n : (int)top.totalHits;
93+
int nres = top.totalHits.value > n ? n : (int)top.totalHits.value;
9494
IndexAnalysisSettings[] res = new IndexAnalysisSettings[nres];
9595

9696
for (int i = 0; i < nres; ++i) {

opengrok-indexer/src/main/java/org/opengrok/indexer/index/IndexDatabase.java

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -58,18 +58,17 @@
5858
import org.apache.lucene.analysis.Analyzer;
5959
import org.apache.lucene.analysis.standard.StandardAnalyzer;
6060
import org.apache.lucene.codecs.lucene50.Lucene50StoredFieldsFormat;
61-
import org.apache.lucene.codecs.lucene70.Lucene70Codec;
61+
import org.apache.lucene.codecs.lucene80.Lucene80Codec;
6262
import org.apache.lucene.document.DateTools;
6363
import org.apache.lucene.document.Document;
6464
import org.apache.lucene.document.Field;
6565
import org.apache.lucene.index.DirectoryReader;
66-
import org.apache.lucene.index.Fields;
6766
import org.apache.lucene.index.IndexReader;
6867
import org.apache.lucene.index.IndexWriter;
6968
import org.apache.lucene.index.IndexWriterConfig;
7069
import org.apache.lucene.index.IndexWriterConfig.OpenMode;
7170
import org.apache.lucene.index.IndexableField;
72-
import org.apache.lucene.index.MultiFields;
71+
import org.apache.lucene.index.MultiTerms;
7372
import org.apache.lucene.index.PostingsEnum;
7473
import org.apache.lucene.index.Term;
7574
import org.apache.lucene.index.Terms;
@@ -420,7 +419,7 @@ public void update() throws IOException {
420419
* compression on the minority of data that is stored, since it
421420
* should not have a detrimental impact on overall throughput.
422421
*/
423-
iwc.setCodec(new Lucene70Codec(
422+
iwc.setCodec(new Lucene80Codec(
424423
Lucene50StoredFieldsFormat.Mode.BEST_COMPRESSION));
425424
writer = new IndexWriter(indexDirectory, iwc);
426425
writer.commit(); // to make sure index exists on the disk
@@ -466,8 +465,7 @@ public void update() throws IOException {
466465
Terms terms = null;
467466
int numDocs = reader.numDocs();
468467
if (numDocs > 0) {
469-
Fields uFields = MultiFields.getFields(reader);//reader.getTermVectors(0);
470-
terms = uFields.terms(QueryBuilder.U);
468+
terms = MultiTerms.getTerms(reader, QueryBuilder.U);
471469
}
472470

473471
try {
@@ -1364,8 +1362,7 @@ public Set<String> getFiles() throws IOException {
13641362
ireader = DirectoryReader.open(indexDirectory); // open existing index
13651363
int numDocs = ireader.numDocs();
13661364
if (numDocs > 0) {
1367-
Fields uFields = MultiFields.getFields(ireader);//reader.getTermVectors(0);
1368-
terms = uFields.terms(QueryBuilder.U);
1365+
terms = MultiTerms.getTerms(ireader, QueryBuilder.U);
13691366
iter = terms.iterator(); // init uid iterator
13701367
}
13711368
while (iter != null && iter.term() != null) {
@@ -1459,8 +1456,7 @@ public void listTokens(int freq) throws IOException {
14591456
ireader = DirectoryReader.open(indexDirectory);
14601457
int numDocs = ireader.numDocs();
14611458
if (numDocs > 0) {
1462-
Fields uFields = MultiFields.getFields(ireader);//reader.getTermVectors(0);
1463-
terms = uFields.terms(QueryBuilder.DEFS);
1459+
terms = MultiTerms.getTerms(ireader, QueryBuilder.DEFS);
14641460
iter = terms.iterator(); // init uid iterator
14651461
}
14661462
while (iter != null && iter.term() != null) {
@@ -1550,7 +1546,7 @@ public static Definitions getDefinitions(File file)
15501546
Query q = new QueryBuilder().setPath(path).build();
15511547
IndexSearcher searcher = new IndexSearcher(ireader);
15521548
TopDocs top = searcher.search(q, 1);
1553-
if (top.totalHits == 0) {
1549+
if (top.totalHits.value == 0) {
15541550
// No hits, no definitions...
15551551
return null;
15561552
}

opengrok-indexer/src/main/java/org/opengrok/indexer/search/SearchEngine.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -214,11 +214,11 @@ private void searchMultiDatabase(List<Project> root, boolean paging) throws IOEx
214214
}
215215

216216
private void searchIndex(IndexSearcher searcher, boolean paging) throws IOException {
217-
collector = TopScoreDocCollector.create(hitsPerPage * cachePages);
217+
collector = TopScoreDocCollector.create(hitsPerPage * cachePages, Short.MAX_VALUE);
218218
searcher.search(query, collector);
219219
totalHits = collector.getTotalHits();
220220
if (!paging && totalHits > 0) {
221-
collector = TopScoreDocCollector.create(totalHits);
221+
collector = TopScoreDocCollector.create(totalHits, Short.MAX_VALUE);
222222
searcher.search(query, collector);
223223
}
224224
hits = collector.topDocs().scoreDocs;
@@ -457,7 +457,7 @@ public void results(int start, int end, List<Hit> ret) {
457457
// TODO check if below fits for if end=old hits.length, or it should include it
458458
if (end > hits.length && !allCollected) {
459459
//do the requery, we want more than 5 pages
460-
collector = TopScoreDocCollector.create(totalHits);
460+
collector = TopScoreDocCollector.create(totalHits, Short.MAX_VALUE);
461461
try {
462462
searcher.search(query, collector);
463463
} catch (Exception e) { // this exception should never be hit, since search() will hit this before

opengrok-indexer/src/main/java/org/opengrok/indexer/search/context/OGKUnifiedHighlighter.java

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -37,10 +37,9 @@
3737
import org.apache.lucene.search.DocIdSetIterator;
3838
import org.apache.lucene.search.IndexSearcher;
3939
import org.apache.lucene.search.Query;
40-
import org.apache.lucene.search.uhighlight.PhraseHelper;
40+
import org.apache.lucene.search.uhighlight.UHComponents;
4141
import org.apache.lucene.search.uhighlight.UnifiedHighlighter;
4242
import org.apache.lucene.util.BytesRef;
43-
import org.apache.lucene.util.automaton.CharacterRunAutomaton;
4443
import org.opengrok.indexer.analysis.AnalyzerGuru;
4544
import org.opengrok.indexer.analysis.ExpandTabsReader;
4645
import org.opengrok.indexer.analysis.StreamSource;
@@ -242,12 +241,10 @@ protected List<CharSequence[]> loadFieldValues(String[] fields,
242241
* @return the value from the {@code super} implementation
243242
*/
244243
@Override
245-
protected OffsetSource getOptimizedOffsetSource(String field,
246-
BytesRef[] terms, PhraseHelper phraseHelper,
247-
CharacterRunAutomaton[] automata) {
244+
protected OffsetSource getOptimizedOffsetSource(UHComponents components) {
248245

249-
OffsetSource res = super.getOptimizedOffsetSource(field,
250-
terms, phraseHelper, automata);
246+
OffsetSource res = super.getOptimizedOffsetSource(components);
247+
String field = components.getField();
251248
if (res == OffsetSource.ANALYSIS) {
252249
/**
253250
* Testing showed that UnifiedHighlighter falls back to

opengrok-indexer/src/main/java/org/opengrok/indexer/web/SearchHelper.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -378,7 +378,7 @@ public SearchHelper executeQuery() {
378378
}
379379
try {
380380
TopFieldDocs fdocs = searcher.search(query, start + maxItems, sort);
381-
totalHits = fdocs.totalHits;
381+
totalHits = fdocs.totalHits.value;
382382
hits = fdocs.scoreDocs;
383383
// Bug #3900: Check if this is a search for a single term, and that
384384
// term is a definition. If that's the case, and we only have one match,
@@ -596,7 +596,7 @@ public int searchSingle(File file) throws IOException,
596596
query = singleBuilder.setPath(path).build();
597597

598598
TopDocs top = searcher.search(query, 1);
599-
if (top.totalHits == 0) {
599+
if (top.totalHits.value == 0) {
600600
return -1;
601601
}
602602

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ Portions Copyright (c) 2018, Chris Fraire <[email protected]>.
6060
</scm>
6161

6262
<properties>
63-
<lucene.version>7.7.0</lucene.version>
63+
<lucene.version>8.2.0</lucene.version>
6464
<mavenjavadocplugin.version>3.0.1</mavenjavadocplugin.version>
6565
<compileSource>1.8</compileSource>
6666
<compileTarget>1.8</compileTarget>

suggester/src/main/java/org/opengrok/suggest/SuggesterProjectData.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,9 @@
2424

2525
import org.apache.commons.io.FileUtils;
2626
import org.apache.lucene.index.DirectoryReader;
27+
import org.apache.lucene.index.FieldInfos;
2728
import org.apache.lucene.index.IndexCommit;
2829
import org.apache.lucene.index.IndexReader;
29-
import org.apache.lucene.index.MultiFields;
3030
import org.apache.lucene.index.Term;
3131
import org.apache.lucene.search.spell.LuceneDictionary;
3232
import org.apache.lucene.search.suggest.InputIterator;
@@ -119,7 +119,7 @@ class SuggesterProjectData implements Closeable {
119119

120120
private void initFields(final Set<String> fields) throws IOException {
121121
try (IndexReader indexReader = DirectoryReader.open(indexDir)) {
122-
Collection<String> indexedFields = MultiFields.getIndexedFields(indexReader);
122+
Collection<String> indexedFields = FieldInfos.getIndexedFields(indexReader);
123123
if (fields == null) {
124124
this.fields = new HashSet<>(indexedFields);
125125
} else if (!indexedFields.containsAll(fields)) {

suggester/src/main/java/org/opengrok/suggest/SuggesterSearcher.java

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,8 @@
3636
import org.apache.lucene.search.LeafCollector;
3737
import org.apache.lucene.search.MatchAllDocsQuery;
3838
import org.apache.lucene.search.Query;
39+
import org.apache.lucene.search.Scorable;
40+
import org.apache.lucene.search.ScoreMode;
3941
import org.apache.lucene.search.Scorer;
4042
import org.apache.lucene.util.BytesRef;
4143
import org.opengrok.suggest.popular.PopularityCounter;
@@ -233,15 +235,15 @@ public LeafCollector getLeafCollector(final LeafReaderContext context) {
233235
final int docBase = context.docBase;
234236

235237
@Override
236-
public void setScorer(final Scorer scorer) {
238+
public void setScorer(final Scorable scorer) {
237239
if (leafReaderContext == context) {
238240
if (scorer instanceof PhraseScorer) {
239241
data.scorer = (PhraseScorer) scorer;
240242
} else {
241243
try {
242244
// it is mentioned in the documentation that #getChildren should not be called
243245
// in #setScorer but no better way was found
244-
for (Scorer.ChildScorer childScorer : scorer.getChildren()) {
246+
for (Scorer.ChildScorable childScorer : scorer.getChildren()) {
245247
if (childScorer.child instanceof PhraseScorer) {
246248
data.scorer = (PhraseScorer) childScorer.child;
247249
}
@@ -263,9 +265,10 @@ public void collect(int doc) {
263265
}
264266

265267
@Override
266-
public boolean needsScores() {
267-
return false;
268+
public ScoreMode scoreMode() {
269+
return ScoreMode.COMPLETE_NO_SCORES;
268270
}
271+
269272
});
270273
} catch (IOException e) {
271274
if (Thread.currentThread().isInterrupted()) {

suggester/src/main/java/org/opengrok/suggest/query/customized/CustomExactPhraseScorer.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,11 @@ public float matchCost() {
110110
};
111111
}
112112

113+
@Override
114+
public float getMaxScore(int i) throws IOException {
115+
return 0;
116+
}
117+
113118
@Override
114119
public DocIdSetIterator iterator() {
115120
return TwoPhaseIterator.asDocIdSetIterator(twoPhaseIterator());

suggester/src/main/java/org/opengrok/suggest/query/customized/CustomPhraseQuery.java

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
import org.apache.lucene.index.LeafReaderContext;
2323
import org.apache.lucene.index.PostingsEnum;
2424
import org.apache.lucene.index.Term;
25-
import org.apache.lucene.index.TermContext;
25+
import org.apache.lucene.index.TermStates;
2626
import org.apache.lucene.index.TermState;
2727
import org.apache.lucene.index.Terms;
2828
import org.apache.lucene.index.TermsEnum;
@@ -31,6 +31,7 @@
3131
import org.apache.lucene.search.MatchAllDocsQuery;
3232
import org.apache.lucene.search.PhraseQuery;
3333
import org.apache.lucene.search.Query;
34+
import org.apache.lucene.search.ScoreMode;
3435
import org.apache.lucene.search.Scorer;
3536
import org.apache.lucene.search.Weight;
3637
import org.apache.lucene.util.ArrayUtil;
@@ -231,30 +232,31 @@ public Query rewrite(IndexReader reader) {
231232
}
232233

233234
@Override
234-
public Weight createWeight(IndexSearcher searcher, boolean needsScores, float boost) throws IOException {
235+
public Weight createWeight(IndexSearcher searcher, ScoreMode scoreMode, float boost) throws IOException {
235236
return new CustomPhraseWeight(searcher, this);
236237
}
237238

238239
private static class CustomPhraseWeight extends Weight {
239240

240241
private CustomPhraseQuery query;
241242

242-
private TermContext[] states;
243+
private TermStates[] states;
243244

244245
CustomPhraseWeight(IndexSearcher searcher, CustomPhraseQuery query) throws IOException {
245246
super(query);
246247
this.query = query;
247248

248249
IndexReaderContext context = searcher.getTopReaderContext();
249250

250-
this.states = new TermContext[query.terms.length];
251+
this.states = new TermStates[query.terms.length];
251252
for(int i = 0; i < query.terms.length; ++i) {
252253
Term term = query.terms[i];
253-
this.states[i] = TermContext.build(context, term);
254+
this.states[i] = TermStates.build(context, term, false);
254255
}
255256
}
256257

257258
@Override
259+
@Deprecated
258260
public void extractTerms(Set<Term> set) {
259261
throw new UnsupportedOperationException();
260262
}
@@ -283,7 +285,7 @@ public Scorer scorer(LeafReaderContext context) throws IOException {
283285

284286
for(int i = 0; i < query.terms.length; ++i) {
285287
Term t = query.terms[i];
286-
TermState state = this.states[i].get(context.ord);
288+
TermState state = this.states[i].get(context);
287289
if (state == null) {
288290
return null;
289291
}

0 commit comments

Comments
 (0)