Lucene 5.5.2中的解释

时间:2016-09-20 15:45:42

标签: java lucene

我正在为Lucene中的Query创建一个自定义Weight类,但我必须覆盖返回一个Explanation对象的方法说明。我尝试创建一个,但是,唯一的构造函数是私有的。我在文档中搜索并且有一个静态方法可以创建一个解释,但这至少需要另一个解释。那么我怎么能创建一个解释?我的Lucene当前版本是5.5.2。

1 个答案:

答案 0 :(得分:0)

Explanation.matchExplanation.noMatch是正确的方法。 Explanation...参数是子解释节点。如果你的解释没有孩子,那就不要传递任何一个孩子:

Explanation.match(floatScore, "mySimpleScore");

对于一个相对简单的实际例子,下面是ConstantScoreWeight如何构造它的解释,其中“boost”和“queryNorm”节点没有子节点:

return Explanation.match(
    queryWeight, getQuery().toString() + ", product of:",
    Explanation.match(boost, "boost"), Explanation.match(queryNorm, "queryNorm"));