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

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

本文整理了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

  1. @Override
  2. public Node visit(final Query query) {
  3. Query clone = new Query();
  4. newParentStack.add(clone);
  5. for (final BooleanClause clause : query.getClauses()) {
  6. clone.addClause((BooleanClause) clause.accept(this));
  7. }
  8. newParentStack.removeLast();
  9. return clone;
  10. }

代码示例来源:origin: renekrie/querqy

  1. @Override
  2. public Query clone(final BooleanParent newParent, final Occur occur, final boolean generated) {
  3. final Query q = new Query(generated);
  4. for (final BooleanClause clause : clauses) {
  5. q.addClause(clause.clone(q, generated));
  6. }
  7. return q;
  8. }

代码示例来源:origin: renekrie/querqy

  1. @Override
  2. public Node visitQuery(QueryContext ctx) {
  3. query = new Query();
  4. operatorStack.add(Operator.NONE);
  5. booleanQueryStack.add(query);
  6. super.visitQuery(ctx);
  7. operatorStack.removeLast();
  8. return booleanQueryStack.removeLast();
  9. }

代码示例来源:origin: renekrie/querqy

  1. @Override
  2. public T visit(final Query query) {
  3. for (final BooleanClause clause : query.getClauses()) {
  4. clause.accept(this);
  5. }
  6. return null;
  7. }

代码示例来源:origin: renekrie/querqy

  1. private void addTerm(Query query, String field, String value) {
  2. DisjunctionMaxQuery dmq = new DisjunctionMaxQuery(query, Clause.Occur.SHOULD, true);
  3. query.addClause(dmq);
  4. Term term = new Term(dmq, field, value);
  5. dmq.addClause(term);
  6. }

代码示例来源:origin: renekrie/querqy

  1. ? new Query(true)
  2. : new BooleanQuery(query.getParent(), query.getOccur(), true);

代码示例来源:origin: renekrie/querqy

  1. Query termsToQuery(String termsQuery) {
  2. Query query = new Query();
  3. for (String t : termsQuery.split("\\s+")) {
  4. if (t.length() > 0) {
  5. DisjunctionMaxQuery dmq = new DisjunctionMaxQuery(query, Occur.SHOULD, false);
  6. query.addClause(dmq);
  7. Term term = new Term(dmq, t);
  8. dmq.addClause(term);
  9. }
  10. }
  11. return query;
  12. }

代码示例来源:origin: renekrie/querqy

  1. if (t.length() > 0) {
  2. Query query = termsToQuery(t);
  3. if (!query.getClauses().isEmpty()) {
  4. for (Input input : inputs) {
  5. BoostInstruction bi = new BoostInstruction(query, direction, boost);

代码示例来源:origin: renekrie/querqy

  1. private void addTerm(Query query, String field, String value, boolean isGenerated) {
  2. DisjunctionMaxQuery dmq = new DisjunctionMaxQuery(query, Clause.Occur.SHOULD, true);
  3. query.addClause(dmq);
  4. Term term = new Term(dmq, field, value, isGenerated);
  5. dmq.addClause(term);
  6. }

代码示例来源:origin: renekrie/querqy

  1. Query query = new Query();
  2. query.addClause(dmq);
  3. if (query.getClauses().isEmpty()) {
  4. DisjunctionMaxQuery dmq = new DisjunctionMaxQuery(query, Occur.SHOULD, false);
  5. dmq.addClause(new Term(dmq, input));
  6. query.addClause(dmq);

代码示例来源:origin: renekrie/querqy

  1. @Test
  2. public void testThatShinglingDoesNotTriggerExceptionOnSingleTerm() throws Exception {
  3. Query query = new Query();
  4. addTerm(query, "t1");
  5. ExpandedQuery expandedQuery = new ExpandedQuery(query);
  6. ShingleRewriter rewriter = new ShingleRewriter();
  7. rewriter.rewrite(expandedQuery);
  8. assertThat((Query) expandedQuery.getUserQuery(),
  9. bq(
  10. dmq(
  11. term("t1")
  12. )
  13. )
  14. );
  15. }

代码示例来源:origin: renekrie/querqy

  1. public static Query parseString(final String input) {
  2. final Query query = new Query();
  3. DisjunctionMaxQuery dmq = new DisjunctionMaxQuery(
  4. query, occur, false);
  5. query.addClause(dmq);
  6. Term term = new Term(dmq, input.substring(start, idx));
  7. dmq.addClause(term);
  8. query.addClause(dmq);
  9. Term term = new Term(dmq, occur == Occur.MUST ? "+"
  10. : "-");
  11. DisjunctionMaxQuery dmq = new DisjunctionMaxQuery(query, occur,
  12. false);
  13. query.addClause(dmq);
  14. Term term = new Term(dmq, input.substring(start));
  15. dmq.addClause(term);
  16. DisjunctionMaxQuery dmq = new DisjunctionMaxQuery(
  17. query, Occur.SHOULD, false);
  18. query.addClause(dmq);
  19. Term term = new Term(dmq, occur == Occur.MUST ? "+"
  20. : "-");

代码示例来源:origin: renekrie/querqy

  1. final List<BooleanClause> clauses = ((querqy.model.Query) userQuery).getClauses();

代码示例来源:origin: renekrie/querqy

  1. @Test
  2. public void testShinglingForTwoTokensWithOnFieldNameNullDontShingle() {
  3. Query query = new Query();
  4. addTerm(query, "f1", "cde");
  5. addTerm(query, "ajk");
  6. ExpandedQuery expandedQuery = new ExpandedQuery(query);
  7. ShingleRewriter rewriter = new ShingleRewriter();
  8. rewriter.rewrite(expandedQuery);
  9. assertThat((Query) expandedQuery.getUserQuery(), bq(dmq(term("f1", "cde")), dmq(term("ajk"))));
  10. }

代码示例来源:origin: renekrie/querqy

  1. @Test
  2. public void testThatTermIsRemovedIfThereIsAnotherTermInTheSameDMQ() throws Exception {
  3. RulesCollectionBuilder builder = new TrieMapRulesCollectionBuilder(false);
  4. DeleteInstruction delete = new DeleteInstruction(Arrays.asList(mkTerm("a")));
  5. builder.addRule(new Input(Arrays.asList(mkTerm("a")), false, false), new Instructions(Arrays.asList((Instruction) delete)));
  6. RulesCollection rules = builder.build();
  7. CommonRulesRewriter rewriter = new CommonRulesRewriter(rules);
  8. ExpandedQuery expandedQuery = makeQuery("a");
  9. Query query = (Query) expandedQuery.getUserQuery();
  10. DisjunctionMaxQuery dmq = query.getClauses(DisjunctionMaxQuery.class).get(0);
  11. querqy.model.Term termB = new querqy.model.Term(dmq, null, "b");
  12. dmq.addClause(termB);
  13. Query rewritten = (Query) rewriter.rewrite(expandedQuery, EMPTY_CONTEXT).getUserQuery();
  14. assertThat(rewritten,
  15. bq(
  16. dmq(
  17. term("b")
  18. )
  19. ));
  20. }

代码示例来源:origin: renekrie/querqy

  1. @Test
  2. public void testShinglingForTwoTokensWithDifferentFieldsDontShingle() {
  3. Query query = new Query();
  4. addTerm(query, "f1", "cde");
  5. addTerm(query, "f2", "ajk");
  6. ExpandedQuery expandedQuery = new ExpandedQuery(query);
  7. ShingleRewriter rewriter = new ShingleRewriter();
  8. rewriter.rewrite(expandedQuery);
  9. assertThat((Query) expandedQuery.getUserQuery(), bq(dmq(term("cde")), dmq(term("ajk"))));
  10. }

代码示例来源:origin: renekrie/querqy

  1. @Test
  2. public void testThatTermIsRemovedOnceIfItExistsTwiceInSameDMQAndNoOtherTermExistsInQuery() throws Exception {
  3. RulesCollectionBuilder builder = new TrieMapRulesCollectionBuilder(false);
  4. DeleteInstruction delete = new DeleteInstruction(Arrays.asList(mkTerm("a")));
  5. builder.addRule(new Input(Arrays.asList(mkTerm("a")), false, false), new Instructions(Arrays.asList((Instruction) delete)));
  6. RulesCollection rules = builder.build();
  7. CommonRulesRewriter rewriter = new CommonRulesRewriter(rules);
  8. ExpandedQuery expandedQuery = makeQuery("a");
  9. Query query = (Query) expandedQuery.getUserQuery();
  10. DisjunctionMaxQuery dmq = query.getClauses(DisjunctionMaxQuery.class).get(0);
  11. querqy.model.Term termB = new querqy.model.Term(dmq, null, "a");
  12. dmq.addClause(termB);
  13. Query rewritten = (Query) rewriter.rewrite(expandedQuery, EMPTY_CONTEXT).getUserQuery();
  14. assertThat(rewritten,
  15. bq(
  16. dmq(
  17. term("a")
  18. )
  19. ));
  20. }

代码示例来源:origin: renekrie/querqy

  1. @Test
  2. public void testShinglingForTwoTokensWithSameFieldAndGeneratedFlag() {
  3. Query query = new Query();
  4. addTerm(query, "f1", "cde", true);
  5. addTerm(query, "f1", "ajk", true);
  6. ExpandedQuery expandedQuery = new ExpandedQuery(query);
  7. ShingleRewriter rewriter = new ShingleRewriter(true);
  8. rewriter.rewrite(expandedQuery);
  9. assertThat((Query) expandedQuery.getUserQuery(),
  10. bq(
  11. dmq(
  12. term("f1", "cde"),
  13. term("f1", "cdeajk")
  14. ),
  15. dmq(
  16. term("f1", "ajk"),
  17. term("f1", "cdeajk")
  18. )
  19. )
  20. );
  21. }

代码示例来源:origin: renekrie/querqy

  1. @Test
  2. public void testShinglingForTwoTokensWithSameField() {
  3. Query query = new Query();
  4. addTerm(query, "f1", "cde");
  5. addTerm(query, "f1", "ajk");
  6. ExpandedQuery expandedQuery = new ExpandedQuery(query);
  7. ShingleRewriter rewriter = new ShingleRewriter();
  8. rewriter.rewrite(expandedQuery);
  9. assertThat((Query) expandedQuery.getUserQuery(),
  10. bq(
  11. dmq(
  12. term("f1", "cde"),
  13. term("f1", "cdeajk")
  14. ),
  15. dmq(
  16. term("f1", "ajk"),
  17. term("f1", "cdeajk")
  18. )
  19. )
  20. );
  21. }

代码示例来源:origin: renekrie/querqy

  1. @Test
  2. public void testShinglingForTwoTokens() {
  3. Query query = new Query();
  4. addTerm(query, "cde");
  5. addTerm(query, "ajk");
  6. ExpandedQuery expandedQuery = new ExpandedQuery(query);
  7. ShingleRewriter rewriter = new ShingleRewriter();
  8. rewriter.rewrite(expandedQuery);
  9. assertThat((Query) expandedQuery.getUserQuery(),
  10. bq(
  11. dmq(
  12. term("cde"),
  13. term("cdeajk")
  14. ),
  15. dmq(
  16. term("ajk"),
  17. term("cdeajk")
  18. )
  19. )
  20. );
  21. }

相关文章