Drools插入顺序

Drools插入顺序,drools,Drools,我试图为一个问题集设置口水,但顺序似乎是随机的。我尝试过使用显著性,但顺序仍然是随机的 rule "Question Set One" // First salience 90 when then QuestionList questionList = new QuestionList(); questionList.add(new Question(Key.FIRST_NAME, "Field", AnswerType.STRING)); questionList.add(q); Qu

我试图为一个问题集设置口水,但顺序似乎是随机的。我尝试过使用显著性,但顺序仍然是随机的

rule "Question Set One"
// First
salience 90
when
then
    QuestionList questionList = new QuestionList();
questionList.add(new Question(Key.FIRST_NAME, "Field", AnswerType.STRING));
questionList.add(q);
QuestionSet questionSet = new QuestionSet("Question Set One", questionList);
insert(questionSet);
end

rule "Ask Your Contact Details"
salience 5
when
then
QuestionList questionList = new QuestionList();
questionList.add(new Question(Key.FIRST_NAME, "First Name", AnswerType.STRING));
 questionList.add(new Question(Key.LAST_NAME, "Last Name", AnswerType.STRING));
 questionList.add(new Question(Key.EMAIL, "Email Address", AnswerType.STRING));
QuestionSet questionSet = new QuestionSet("Contact Details",     questionList);
    insert(questionSet);
end
插入的顺序(即执行
insert(.)
)取决于某些右侧的执行顺序,即。他们的规则是“解雇”。如果没有显著性,这种秩序取决于难以控制的环境——没有人愿意这样做,因为它无论如何都不重要

如果它真的很重要,一种控制这种情况的方法就是显著性,正如你在这些规则中看到的那样,尽管没有明显的理由说明它与这两条规则有什么关系。因此,“问题集1”将首先被触发,“问题集1”是第一个被插入的。(您没有显示任何其他情况。)

完成这两个插入后,两个
问题集
事实驻留在工作内存中。在这些事实上没有任何形式的秩序概念


如果您需要事实按一定顺序排列,请添加“rank”等属性,分配适当的值(序数或其他值),并相应地编写规则。

不确定您的问题是什么,无论如何都要尝试猜测和回答。