Lucene Query Boosting

时间:2011-07-01 14:10:25

标签: java lucene

我正在从文件中读取2个查询,

Query q1 = new QueryParser(Version.LUCENE_CURRENT, "id", analyzer).parse(dis.readLine());
Query q2 = new QueryParser(Version.LUCENE_CURRENT, "id", analyzer).parse(dis.readLine());

我希望将这些查询组合为一个查询,并对查询2(即q2)进行一些提升(比如5)。

谢谢,
拉维

2 个答案:

答案 0 :(得分:1)

我相信这应该有效:

q2.setBoost(5);

BooleanQuery q3 = new BooleanQuery();
q3.add(q1, BooleanClause.Occur.SHOULD);
q3.add(q2, BooleanClause.Occur.SHOULD);

您使用BooleanQuery q3进行搜索。

答案 1 :(得分:0)

我不确定您是否可以提升查询。我知道你可以在创建索引时增加一个字段,例如

Field field = new Field("id", id, ......);
field.setBoost(0.5);

至于组合这两个查询:

String term = dis.readLine() + " AND " + dis.readLine();

或者那种效果......