本文整理了Java中querqy.model.Query
类的一些代码示例,展示了Query
类的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Query
类的具体详情如下:
包路径:querqy.model.Query
类名称:Query
[英]The top-level query as entered by the user or rewritten by the rewrite chain.
[中]由用户输入或由重写链重写的顶级查询。
代码示例来源:origin: renekrie/querqy
@Override
public Node visit(final Query query) {
Query clone = new Query();
newParentStack.add(clone);
for (final BooleanClause clause : query.getClauses()) {
clone.addClause((BooleanClause) clause.accept(this));
}
newParentStack.removeLast();
return clone;
}
代码示例来源:origin: renekrie/querqy
@Override
public Query clone(final BooleanParent newParent, final Occur occur, final boolean generated) {
final Query q = new Query(generated);
for (final BooleanClause clause : clauses) {
q.addClause(clause.clone(q, generated));
}
return q;
}
代码示例来源:origin: renekrie/querqy
@Override
public Node visitQuery(QueryContext ctx) {
query = new Query();
operatorStack.add(Operator.NONE);
booleanQueryStack.add(query);
super.visitQuery(ctx);
operatorStack.removeLast();
return booleanQueryStack.removeLast();
}
代码示例来源:origin: renekrie/querqy
@Override
public T visit(final Query query) {
for (final BooleanClause clause : query.getClauses()) {
clause.accept(this);
}
return null;
}
代码示例来源:origin: renekrie/querqy
private void addTerm(Query query, String field, String value) {
DisjunctionMaxQuery dmq = new DisjunctionMaxQuery(query, Clause.Occur.SHOULD, true);
query.addClause(dmq);
Term term = new Term(dmq, field, value);
dmq.addClause(term);
}
代码示例来源:origin: renekrie/querqy
? new Query(true)
: new BooleanQuery(query.getParent(), query.getOccur(), true);
代码示例来源:origin: renekrie/querqy
Query termsToQuery(String termsQuery) {
Query query = new Query();
for (String t : termsQuery.split("\\s+")) {
if (t.length() > 0) {
DisjunctionMaxQuery dmq = new DisjunctionMaxQuery(query, Occur.SHOULD, false);
query.addClause(dmq);
Term term = new Term(dmq, t);
dmq.addClause(term);
}
}
return query;
}
代码示例来源:origin: renekrie/querqy
if (t.length() > 0) {
Query query = termsToQuery(t);
if (!query.getClauses().isEmpty()) {
for (Input input : inputs) {
BoostInstruction bi = new BoostInstruction(query, direction, boost);
代码示例来源:origin: renekrie/querqy
private void addTerm(Query query, String field, String value, boolean isGenerated) {
DisjunctionMaxQuery dmq = new DisjunctionMaxQuery(query, Clause.Occur.SHOULD, true);
query.addClause(dmq);
Term term = new Term(dmq, field, value, isGenerated);
dmq.addClause(term);
}
代码示例来源:origin: renekrie/querqy
Query query = new Query();
query.addClause(dmq);
if (query.getClauses().isEmpty()) {
DisjunctionMaxQuery dmq = new DisjunctionMaxQuery(query, Occur.SHOULD, false);
dmq.addClause(new Term(dmq, input));
query.addClause(dmq);
代码示例来源:origin: renekrie/querqy
@Test
public void testThatShinglingDoesNotTriggerExceptionOnSingleTerm() throws Exception {
Query query = new Query();
addTerm(query, "t1");
ExpandedQuery expandedQuery = new ExpandedQuery(query);
ShingleRewriter rewriter = new ShingleRewriter();
rewriter.rewrite(expandedQuery);
assertThat((Query) expandedQuery.getUserQuery(),
bq(
dmq(
term("t1")
)
)
);
}
代码示例来源:origin: renekrie/querqy
public static Query parseString(final String input) {
final Query query = new Query();
DisjunctionMaxQuery dmq = new DisjunctionMaxQuery(
query, occur, false);
query.addClause(dmq);
Term term = new Term(dmq, input.substring(start, idx));
dmq.addClause(term);
query.addClause(dmq);
Term term = new Term(dmq, occur == Occur.MUST ? "+"
: "-");
DisjunctionMaxQuery dmq = new DisjunctionMaxQuery(query, occur,
false);
query.addClause(dmq);
Term term = new Term(dmq, input.substring(start));
dmq.addClause(term);
DisjunctionMaxQuery dmq = new DisjunctionMaxQuery(
query, Occur.SHOULD, false);
query.addClause(dmq);
Term term = new Term(dmq, occur == Occur.MUST ? "+"
: "-");
代码示例来源:origin: renekrie/querqy
final List<BooleanClause> clauses = ((querqy.model.Query) userQuery).getClauses();
代码示例来源:origin: renekrie/querqy
@Test
public void testShinglingForTwoTokensWithOnFieldNameNullDontShingle() {
Query query = new Query();
addTerm(query, "f1", "cde");
addTerm(query, "ajk");
ExpandedQuery expandedQuery = new ExpandedQuery(query);
ShingleRewriter rewriter = new ShingleRewriter();
rewriter.rewrite(expandedQuery);
assertThat((Query) expandedQuery.getUserQuery(), bq(dmq(term("f1", "cde")), dmq(term("ajk"))));
}
代码示例来源:origin: renekrie/querqy
@Test
public void testThatTermIsRemovedIfThereIsAnotherTermInTheSameDMQ() throws Exception {
RulesCollectionBuilder builder = new TrieMapRulesCollectionBuilder(false);
DeleteInstruction delete = new DeleteInstruction(Arrays.asList(mkTerm("a")));
builder.addRule(new Input(Arrays.asList(mkTerm("a")), false, false), new Instructions(Arrays.asList((Instruction) delete)));
RulesCollection rules = builder.build();
CommonRulesRewriter rewriter = new CommonRulesRewriter(rules);
ExpandedQuery expandedQuery = makeQuery("a");
Query query = (Query) expandedQuery.getUserQuery();
DisjunctionMaxQuery dmq = query.getClauses(DisjunctionMaxQuery.class).get(0);
querqy.model.Term termB = new querqy.model.Term(dmq, null, "b");
dmq.addClause(termB);
Query rewritten = (Query) rewriter.rewrite(expandedQuery, EMPTY_CONTEXT).getUserQuery();
assertThat(rewritten,
bq(
dmq(
term("b")
)
));
}
代码示例来源:origin: renekrie/querqy
@Test
public void testShinglingForTwoTokensWithDifferentFieldsDontShingle() {
Query query = new Query();
addTerm(query, "f1", "cde");
addTerm(query, "f2", "ajk");
ExpandedQuery expandedQuery = new ExpandedQuery(query);
ShingleRewriter rewriter = new ShingleRewriter();
rewriter.rewrite(expandedQuery);
assertThat((Query) expandedQuery.getUserQuery(), bq(dmq(term("cde")), dmq(term("ajk"))));
}
代码示例来源:origin: renekrie/querqy
@Test
public void testThatTermIsRemovedOnceIfItExistsTwiceInSameDMQAndNoOtherTermExistsInQuery() throws Exception {
RulesCollectionBuilder builder = new TrieMapRulesCollectionBuilder(false);
DeleteInstruction delete = new DeleteInstruction(Arrays.asList(mkTerm("a")));
builder.addRule(new Input(Arrays.asList(mkTerm("a")), false, false), new Instructions(Arrays.asList((Instruction) delete)));
RulesCollection rules = builder.build();
CommonRulesRewriter rewriter = new CommonRulesRewriter(rules);
ExpandedQuery expandedQuery = makeQuery("a");
Query query = (Query) expandedQuery.getUserQuery();
DisjunctionMaxQuery dmq = query.getClauses(DisjunctionMaxQuery.class).get(0);
querqy.model.Term termB = new querqy.model.Term(dmq, null, "a");
dmq.addClause(termB);
Query rewritten = (Query) rewriter.rewrite(expandedQuery, EMPTY_CONTEXT).getUserQuery();
assertThat(rewritten,
bq(
dmq(
term("a")
)
));
}
代码示例来源:origin: renekrie/querqy
@Test
public void testShinglingForTwoTokensWithSameFieldAndGeneratedFlag() {
Query query = new Query();
addTerm(query, "f1", "cde", true);
addTerm(query, "f1", "ajk", true);
ExpandedQuery expandedQuery = new ExpandedQuery(query);
ShingleRewriter rewriter = new ShingleRewriter(true);
rewriter.rewrite(expandedQuery);
assertThat((Query) expandedQuery.getUserQuery(),
bq(
dmq(
term("f1", "cde"),
term("f1", "cdeajk")
),
dmq(
term("f1", "ajk"),
term("f1", "cdeajk")
)
)
);
}
代码示例来源:origin: renekrie/querqy
@Test
public void testShinglingForTwoTokensWithSameField() {
Query query = new Query();
addTerm(query, "f1", "cde");
addTerm(query, "f1", "ajk");
ExpandedQuery expandedQuery = new ExpandedQuery(query);
ShingleRewriter rewriter = new ShingleRewriter();
rewriter.rewrite(expandedQuery);
assertThat((Query) expandedQuery.getUserQuery(),
bq(
dmq(
term("f1", "cde"),
term("f1", "cdeajk")
),
dmq(
term("f1", "ajk"),
term("f1", "cdeajk")
)
)
);
}
代码示例来源:origin: renekrie/querqy
@Test
public void testShinglingForTwoTokens() {
Query query = new Query();
addTerm(query, "cde");
addTerm(query, "ajk");
ExpandedQuery expandedQuery = new ExpandedQuery(query);
ShingleRewriter rewriter = new ShingleRewriter();
rewriter.rewrite(expandedQuery);
assertThat((Query) expandedQuery.getUserQuery(),
bq(
dmq(
term("cde"),
term("cdeajk")
),
dmq(
term("ajk"),
term("cdeajk")
)
)
);
}
内容来源于网络,如有侵权,请联系作者删除!