querqy.model.Query类的使用及代码示例

x33g5p2x  于2022-01-29 转载在 其他  
字(7.9k)|赞(0)|评价(0)|浏览(159)

本文整理了Java中querqy.model.Query类的一些代码示例,展示了Query类的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Query类的具体详情如下:
包路径:querqy.model.Query
类名称: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")
          )
      )
  );
}

相关文章

微信公众号

最新文章

更多