mirror of https://github.com/apache/lucene.git
LUCENE-8892: add missing closing parentheses in MultiBoolFunction's description()
This commit is contained in:
parent
82bf95727e
commit
dc16e2707b
|
@ -115,6 +115,8 @@ Bug Fixes
|
||||||
* LUCENE-8853: FileSwitchDirectory now applies best effort to place tmp files in the same
|
* LUCENE-8853: FileSwitchDirectory now applies best effort to place tmp files in the same
|
||||||
directory as the target files. (Simon Willnauer)
|
directory as the target files. (Simon Willnauer)
|
||||||
|
|
||||||
|
* LUCENE-8892: Add missing closing parentheses in MultiBoolFunction's description() (Florian Diebold, Munendra S N)
|
||||||
|
|
||||||
Improvements
|
Improvements
|
||||||
|
|
||||||
* LUCENE-7840: Non-scoring BooleanQuery now removes SHOULD clauses before building the scorer supplier
|
* LUCENE-7840: Non-scoring BooleanQuery now removes SHOULD clauses before building the scorer supplier
|
||||||
|
|
|
@ -16,16 +16,16 @@
|
||||||
*/
|
*/
|
||||||
package org.apache.lucene.queries.function.valuesource;
|
package org.apache.lucene.queries.function.valuesource;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
import org.apache.lucene.index.LeafReaderContext;
|
import org.apache.lucene.index.LeafReaderContext;
|
||||||
import org.apache.lucene.queries.function.FunctionValues;
|
import org.apache.lucene.queries.function.FunctionValues;
|
||||||
import org.apache.lucene.queries.function.ValueSource;
|
import org.apache.lucene.queries.function.ValueSource;
|
||||||
import org.apache.lucene.queries.function.docvalues.BoolDocValues;
|
import org.apache.lucene.queries.function.docvalues.BoolDocValues;
|
||||||
import org.apache.lucene.search.IndexSearcher;
|
import org.apache.lucene.search.IndexSearcher;
|
||||||
|
|
||||||
import java.io.IOException;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Abstract {@link ValueSource} implementation which wraps multiple ValueSources
|
* Abstract {@link ValueSource} implementation which wraps multiple ValueSources
|
||||||
* and applies an extendible boolean function to their values.
|
* and applies an extendible boolean function to their values.
|
||||||
|
@ -68,6 +68,7 @@ public abstract class MultiBoolFunction extends BoolFunction {
|
||||||
}
|
}
|
||||||
sb.append(dv.toString(doc));
|
sb.append(dv.toString(doc));
|
||||||
}
|
}
|
||||||
|
sb.append(')');
|
||||||
return sb.toString();
|
return sb.toString();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
@ -86,6 +87,7 @@ public abstract class MultiBoolFunction extends BoolFunction {
|
||||||
}
|
}
|
||||||
sb.append(source.description());
|
sb.append(source.description());
|
||||||
}
|
}
|
||||||
|
sb.append(')');
|
||||||
return sb.toString();
|
return sb.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -17,6 +17,7 @@
|
||||||
package org.apache.lucene.queries.function;
|
package org.apache.lucene.queries.function;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
@ -486,6 +487,31 @@ public class TestValueSources extends LuceneTestCase {
|
||||||
assertHits(new FunctionQuery(vs), new float[] { 0F, 0F });
|
assertHits(new FunctionQuery(vs), new float[] { 0F, 0F });
|
||||||
assertAllExist(vs);
|
assertAllExist(vs);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void testMultiBoolFunction() throws Exception {
|
||||||
|
// verify toString and description
|
||||||
|
List<ValueSource> valueSources = new ArrayList<>(Arrays.asList(
|
||||||
|
new ConstValueSource(4.1f), new ConstValueSource(1.2f), new DoubleFieldSource("some_double")
|
||||||
|
));
|
||||||
|
ValueSource vs = new MultiBoolFunction(valueSources) {
|
||||||
|
@Override
|
||||||
|
protected String name() {
|
||||||
|
return "test";
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected boolean func(int doc, FunctionValues[] vals) throws IOException {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
assertEquals("test(const(4.1),const(1.2),double(some_double))", vs.description());
|
||||||
|
|
||||||
|
final LeafReaderContext leaf = searcher.getIndexReader().leaves().get(0);
|
||||||
|
FunctionValues fv = vs.getValues(ValueSource.newContext(searcher), leaf);
|
||||||
|
// doesn't matter what is the docId, verify toString
|
||||||
|
assertEquals("test(const(4.1),const(1.2),double(some_double)=0.0)", fv.toString(1));
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
public void testTF() throws Exception {
|
public void testTF() throws Exception {
|
||||||
Similarity saved = searcher.getSimilarity();
|
Similarity saved = searcher.getSimilarity();
|
||||||
|
|
Loading…
Reference in New Issue