ルールの結果部分でハード制約スコアとソフト制約スコアを使用することは可能ですが、そのうちの 1 つにゼロ以外の値があります。例えば
scoreHolder.addHardConstraintMatch(kcontext, $weight * isHard);
scoreHolder.addSoftConstraintMatch(kcontext, $weight * isSoft);
ここで、isHard/isSoft の一方は 1 で、もう一方はゼロです。
上記は常に実行された最後のステートメントの値を取ります (これはソフト制約です)