Example usage for org.apache.lucene.search TopScoreDocCollector create

List of usage examples for org.apache.lucene.search TopScoreDocCollector create

Introduction

In this page you can find the example usage for org.apache.lucene.search TopScoreDocCollector create.

Prototype

public static TopScoreDocCollector create(int numHits, int totalHitsThreshold) 

Source Link

Document

Creates a new TopScoreDocCollector given the number of hits to collect and the number of hits to count accurately.

Usage

From source file:org.drools.workbench.screens.guided.dtree.backend.server.indexing.IndexRuleTest.java

License:Apache License

@Test
public void testIndexDrlRules() throws IOException, InterruptedException {
    //Add test files
    final Path path = basePath.resolve("drl1.tdrl");
    final String drl = loadText("drl1.tdrl");
    ioService().write(path, drl);// w w  w  .ja  v a 2 s  . com

    Thread.sleep(5000); //wait for events to be consumed from jgit -> (notify changes -> watcher -> index) -> lucene index

    final Index index = getConfig().getIndexManager().get(KObjectUtil.toKCluster(basePath.getFileSystem()));

    {
        final IndexSearcher searcher = ((LuceneIndex) index).nrtSearcher();
        final TopScoreDocCollector collector = TopScoreDocCollector.create(10, true);
        final Query query = new QueryBuilder().addTerm(new ValueRuleIndexTerm("myRule")).build();

        searcher.search(query, collector);
        final ScoreDoc[] hits = collector.topDocs().scoreDocs;

        assertEquals(1, hits.length);

        ((LuceneIndex) index).nrtRelease(searcher);
    }
}

From source file:org.drools.workbench.screens.guided.dtree.backend.server.indexing.IndexRuleTypeTest.java

License:Apache License

@Test
public void testIndexRuleTypes() throws IOException, InterruptedException {
    //Add test files
    final Path path1 = basePath.resolve("drl1.tdrl");
    final String drl1 = loadText("drl1.tdrl");
    ioService().write(path1, drl1);//  w ww.  j  a v  a 2 s .  c om
    final Path path2 = basePath.resolve("drl2.tdrl");
    final String drl2 = loadText("drl2.tdrl");
    ioService().write(path2, drl2);

    Thread.sleep(5000); //wait for events to be consumed from jgit -> (notify changes -> watcher -> index) -> lucene index

    final Index index = getConfig().getIndexManager().get(KObjectUtil.toKCluster(basePath.getFileSystem()));

    {
        final IndexSearcher searcher = ((LuceneIndex) index).nrtSearcher();
        final TopScoreDocCollector collector = TopScoreDocCollector.create(10, true);
        final Query query = new QueryBuilder()
                .addTerm(new ValueTypeIndexTerm(
                        "org.drools.workbench.screens.guided.dtree.backend.server.indexing.classes.Applicant"))
                .build();

        searcher.search(query, collector);
        final ScoreDoc[] hits = collector.topDocs().scoreDocs;

        assertEquals(2, hits.length);

        ((LuceneIndex) index).nrtRelease(searcher);

    }

    {
        final IndexSearcher searcher = ((LuceneIndex) index).nrtSearcher();
        final TopScoreDocCollector collector = TopScoreDocCollector.create(10, true);
        final Query query = new QueryBuilder().useWildcards().addTerm(new ValueTypeIndexTerm("*.Applicant"))
                .build();

        searcher.search(query, collector);
        final ScoreDoc[] hits = collector.topDocs().scoreDocs;

        assertEquals(2, hits.length);

        ((LuceneIndex) index).nrtRelease(searcher);

    }

}

From source file:org.drools.workbench.screens.guided.rule.backend.server.indexing.IndexRuleAttributeNameAndValueCompositionTest.java

License:Apache License

@Test
public void testIndexDrlRuleAttributeNameAndValues() throws IOException, InterruptedException {
    //Add test files
    final Path path = basePath.resolve("drl1.rdrl");
    final String drl = loadText("drl1.rdrl");
    ioService().write(path, drl);//from   w  ww.  jav a  2s.c o m

    Thread.sleep(5000); //wait for events to be consumed from jgit -> (notify changes -> watcher -> index) -> lucene index

    final Index index = getConfig().getIndexManager()
            .get(org.uberfire.ext.metadata.io.KObjectUtil.toKCluster(basePath.getFileSystem()));

    //DRL defining a RuleFlow-Group named myRuleFlowGroup. This should match drl5.drl
    //This checks whether there is a Rule Attribute "ruleflow-group" and its Value is "myRuleflowGroup"
    {
        final IndexSearcher searcher = ((LuceneIndex) index).nrtSearcher();
        final TopScoreDocCollector collector = TopScoreDocCollector.create(10, true);
        final Query query = new QueryBuilder().addTerm(new ValueRuleAttributeIndexTerm("ruleflow-group"))
                .addTerm(new ValueRuleAttributeValueIndexTerm("myRuleFlowGroup")).build();

        searcher.search(query, collector);
        final ScoreDoc[] hits = collector.topDocs().scoreDocs;
        assertEquals(1, hits.length);

        final List<KObject> results = new ArrayList<KObject>();
        for (int i = 0; i < hits.length; i++) {
            results.add(KObjectUtil.toKObject(searcher.doc(hits[i].doc)));
        }
        assertContains(results, path);

        ((LuceneIndex) index).nrtRelease(searcher);
    }

    //DRL defining a RuleFlow-Group named myAgendaGroup. This should *NOT* match drl5.drl
    {
        final IndexSearcher searcher = ((LuceneIndex) index).nrtSearcher();
        final TopScoreDocCollector collector = TopScoreDocCollector.create(10, true);
        final Query query = new QueryBuilder().addTerm(new ValueRuleAttributeIndexTerm("ruleflow-group"))
                .addTerm(new ValueRuleAttributeValueIndexTerm("myAgendaGroup")).build();

        searcher.search(query, collector);
        final ScoreDoc[] hits = collector.topDocs().scoreDocs;
        assertEquals(0, hits.length);

        ((LuceneIndex) index).nrtRelease(searcher);
    }

}

From source file:org.drools.workbench.screens.guided.rule.backend.server.indexing.IndexRuleAttributeNameAndValueTest.java

License:Apache License

@Test
public void testIndexDrlRuleAttributeNameAndValues() throws IOException, InterruptedException {
    //Add test files
    final Path path = basePath.resolve("drl1.rdrl");
    final String drl = loadText("drl1.rdrl");
    ioService().write(path, drl);/*from ww w  . j a v  a 2 s  . c o  m*/

    Thread.sleep(5000); //wait for events to be consumed from jgit -> (notify changes -> watcher -> index) -> lucene index

    final Index index = getConfig().getIndexManager().get(KObjectUtil.toKCluster(basePath.getFileSystem()));

    {
        final IndexSearcher searcher = ((LuceneIndex) index).nrtSearcher();
        final TopScoreDocCollector collector = TopScoreDocCollector.create(10, true);

        final BooleanQuery query = new BooleanQuery();
        query.add(new TermQuery(new Term(RuleAttributeIndexTerm.TERM, "ruleflow-group")),
                BooleanClause.Occur.MUST);
        query.add(new TermQuery(new Term(RuleAttributeValueIndexTerm.TERM, "nonexistent")),
                BooleanClause.Occur.MUST);
        searcher.search(query, collector);
        final ScoreDoc[] hits = collector.topDocs().scoreDocs;

        assertEquals(0, hits.length);

        ((LuceneIndex) index).nrtRelease(searcher);

    }

    //This simply checks whether there is a Rule Attribute "ruleflow-group" and a Rule Attribute Value "myRuleflowGroup"
    //The specific query does not check that the Rule Attribute Value corresponds to the Rule Attribute, so it is possible
    //that the value relates to a different Rule Attribute.
    {
        final IndexSearcher searcher = ((LuceneIndex) index).nrtSearcher();
        final TopScoreDocCollector collector = TopScoreDocCollector.create(10, true);

        final BooleanQuery query = new BooleanQuery();
        query.add(new TermQuery(new Term(RuleAttributeIndexTerm.TERM, "ruleflow-group")),
                BooleanClause.Occur.MUST);
        query.add(new TermQuery(new Term(RuleAttributeValueIndexTerm.TERM, "myruleflowgroup")),
                BooleanClause.Occur.MUST);
        searcher.search(query, collector);
        final ScoreDoc[] hits = collector.topDocs().scoreDocs;

        assertEquals(1, hits.length);

        ((LuceneIndex) index).nrtRelease(searcher);

    }

}

From source file:org.drools.workbench.screens.guided.rule.backend.server.indexing.IndexRuleAttributeNameTest.java

License:Apache License

@Test
public void testIndexDrlRuleAttributeNames() throws IOException, InterruptedException {
    //Add test files
    final Path path = basePath.resolve("drl1.rdrl");
    final String drl = loadText("drl1.rdrl");
    ioService().write(path, drl);/*w ww .  j  a v a2s .c  om*/

    Thread.sleep(5000); //wait for events to be consumed from jgit -> (notify changes -> watcher -> index) -> lucene index

    final Index index = getConfig().getIndexManager().get(KObjectUtil.toKCluster(basePath.getFileSystem()));

    {
        final IndexSearcher searcher = ((LuceneIndex) index).nrtSearcher();
        final TopScoreDocCollector collector = TopScoreDocCollector.create(10, true);
        final Query query = new QueryBuilder().addTerm(new ValueRuleAttributeIndexTerm("ruleflow-group"))
                .build();

        searcher.search(query, collector);
        final ScoreDoc[] hits = collector.topDocs().scoreDocs;

        assertEquals(1, hits.length);

        ((LuceneIndex) index).nrtRelease(searcher);

    }
}

From source file:org.drools.workbench.screens.guided.rule.backend.server.indexing.IndexRuleMultipleTypesTest.java

License:Apache License

@Test
public void testIndexDrlRuleMultipleTypes() throws IOException, InterruptedException {
    //Add test files
    final Path path1 = basePath.resolve("drl3.rdrl");
    final String drl1 = loadText("drl3.rdrl");
    ioService().write(path1, drl1);//from w w w . ja  v a 2 s  .  c  o  m
    final Path path2 = basePath.resolve("drl4.rdrl");
    final String drl2 = loadText("drl4.rdrl");
    ioService().write(path2, drl2);

    Thread.sleep(5000); //wait for events to be consumed from jgit -> (notify changes -> watcher -> index) -> lucene index

    final Index index = getConfig().getIndexManager()
            .get(org.uberfire.ext.metadata.io.KObjectUtil.toKCluster(basePath.getFileSystem()));

    {
        final IndexSearcher searcher = ((LuceneIndex) index).nrtSearcher();
        final TopScoreDocCollector collector = TopScoreDocCollector.create(10, true);
        final Query query = new QueryBuilder()
                .addTerm(new ValueTypeIndexTerm(
                        "org.drools.workbench.screens.guided.rule.backend.server.indexing.classes.Applicant"))
                .build();

        searcher.search(query, collector);
        final ScoreDoc[] hits = collector.topDocs().scoreDocs;
        assertEquals(2, hits.length);

        final List<KObject> results = new ArrayList<KObject>();
        for (int i = 0; i < hits.length; i++) {
            results.add(KObjectUtil.toKObject(searcher.doc(hits[i].doc)));
        }
        assertContains(results, path1);
        assertContains(results, path2);

        ((LuceneIndex) index).nrtRelease(searcher);

    }

    {
        final IndexSearcher searcher = ((LuceneIndex) index).nrtSearcher();
        final TopScoreDocCollector collector = TopScoreDocCollector.create(10, true);
        final Query query = new QueryBuilder()
                .addTerm(new ValueTypeIndexTerm(
                        "org.drools.workbench.screens.guided.rule.backend.server.indexing.classes.Mortgage"))
                .build();

        searcher.search(query, collector);
        final ScoreDoc[] hits = collector.topDocs().scoreDocs;
        assertEquals(1, hits.length);

        final List<KObject> results = new ArrayList<KObject>();
        for (int i = 0; i < hits.length; i++) {
            results.add(KObjectUtil.toKObject(searcher.doc(hits[i].doc)));
        }
        assertContains(results, path2);

        ((LuceneIndex) index).nrtRelease(searcher);

    }

}

From source file:org.drools.workbench.screens.guided.rule.backend.server.indexing.IndexRuleTest.java

License:Apache License

@Test
public void testIndexDrlRules() throws IOException, InterruptedException {
    //Add test files
    final Path path = basePath.resolve("drl1.rdrl");
    final String drl = loadText("drl1.rdrl");
    ioService().write(path, drl);// ww  w .j  ava2  s  . c om

    Thread.sleep(5000); //wait for events to be consumed from jgit -> (notify changes -> watcher -> index) -> lucene index

    final Index index = getConfig().getIndexManager().get(KObjectUtil.toKCluster(basePath.getFileSystem()));

    {
        final IndexSearcher searcher = ((LuceneIndex) index).nrtSearcher();
        final TopScoreDocCollector collector = TopScoreDocCollector.create(10, true);
        final Query query = new QueryBuilder().addTerm(new ValueRuleIndexTerm("myRule")).build();

        searcher.search(query, collector);
        final ScoreDoc[] hits = collector.topDocs().scoreDocs;

        assertEquals(1, hits.length);

        ((LuceneIndex) index).nrtRelease(searcher);
    }
}

From source file:org.drools.workbench.screens.guided.rule.backend.server.indexing.IndexRuleTypeTest.java

License:Apache License

@Test
public void testIndexRuleTypes() throws IOException, InterruptedException {
    //Add test files
    final Path path1 = basePath.resolve("drl1.rdrl");
    final String drl1 = loadText("drl1.rdrl");
    ioService().write(path1, drl1);/*from  w w  w.  j  av a2 s.c  om*/
    final Path path2 = basePath.resolve("drl2.rdrl");
    final String drl2 = loadText("drl2.rdrl");
    ioService().write(path2, drl2);

    Thread.sleep(5000); //wait for events to be consumed from jgit -> (notify changes -> watcher -> index) -> lucene index

    final Index index = getConfig().getIndexManager().get(KObjectUtil.toKCluster(basePath.getFileSystem()));

    {
        final IndexSearcher searcher = ((LuceneIndex) index).nrtSearcher();
        final TopScoreDocCollector collector = TopScoreDocCollector.create(10, true);
        final Query query = new QueryBuilder()
                .addTerm(new ValueTypeIndexTerm(
                        "org.drools.workbench.screens.guided.rule.backend.server.indexing.classes.Applicant"))
                .build();

        searcher.search(query, collector);
        final ScoreDoc[] hits = collector.topDocs().scoreDocs;

        assertEquals(2, hits.length);

        ((LuceneIndex) index).nrtRelease(searcher);

    }

    {
        final IndexSearcher searcher = ((LuceneIndex) index).nrtSearcher();
        final TopScoreDocCollector collector = TopScoreDocCollector.create(10, true);
        final Query query = new QueryBuilder().useWildcards().addTerm(new ValueTypeIndexTerm("*.Applicant"))
                .build();

        searcher.search(query, collector);
        final ScoreDoc[] hits = collector.topDocs().scoreDocs;

        assertEquals(2, hits.length);

        ((LuceneIndex) index).nrtRelease(searcher);

    }

}

From source file:org.drools.workbench.screens.guided.scorecard.backend.server.indexing.IndexGuidedScoreCardTest.java

License:Apache License

@Test
public void testIndexGuidedScoreCard() throws IOException, InterruptedException {
    //Add test files
    final Path path1 = basePath.resolve("scorecard1.scgd");
    final ScoreCardModel model1 = GuidedScoreCardFactory.makeScoreCardWithCharacteristics(
            "org.drools.workbench.screens.guided.scorecard.backend.server.indexing", new ArrayList<Import>() {
                {//from   ww  w.  j a  v  a  2s  .c  o m
                    add(new Import(
                            "org.drools.workbench.screens.guided.scorecard.backend.server.indexing.classes.Applicant"));
                    add(new Import(
                            "org.drools.workbench.screens.guided.scorecard.backend.server.indexing.classes.Mortgage"));
                }
            }, "scorecard1");
    final String xml1 = GuidedScoreCardXMLPersistence.getInstance().marshal(model1);
    ioService().write(path1, xml1);
    final Path path2 = basePath.resolve("scorecard2.scgd");
    final ScoreCardModel model2 = GuidedScoreCardFactory.makeScoreCardWithoutCharacteristics(
            "org.drools.workbench.screens.guided.scorecard.backend.server.indexing", new ArrayList<Import>() {
                {
                    add(new Import(
                            "org.drools.workbench.screens.guided.scorecard.backend.server.indexing.classes.Applicant"));
                    add(new Import(
                            "org.drools.workbench.screens.guided.scorecard.backend.server.indexing.classes.Mortgage"));
                }
            }, "scorecard2");
    final String xml2 = GuidedScoreCardXMLPersistence.getInstance().marshal(model2);
    ioService().write(path2, xml2);
    final Path path3 = basePath.resolve("scorecard3.scgd");
    final ScoreCardModel model3 = GuidedScoreCardFactory.makeEmptyScoreCard(
            "org.drools.workbench.screens.guided.scorecard.backend.server.indexing", "scorecard3");
    final String xml3 = GuidedScoreCardXMLPersistence.getInstance().marshal(model3);
    ioService().write(path3, xml3);

    Thread.sleep(5000); //wait for events to be consumed from jgit -> (notify changes -> watcher -> index) -> lucene index

    final Index index = getConfig().getIndexManager()
            .get(org.uberfire.ext.metadata.io.KObjectUtil.toKCluster(basePath.getFileSystem()));

    //Score Cards using org.drools.workbench.screens.guided.scorecard.backend.server.indexing.classes.Applicant
    {
        final IndexSearcher searcher = ((LuceneIndex) index).nrtSearcher();
        final TopScoreDocCollector collector = TopScoreDocCollector.create(10, true);
        final Query query = new QueryBuilder().addTerm(new ValueTypeIndexTerm(
                "org.drools.workbench.screens.guided.scorecard.backend.server.indexing.classes.Applicant"))
                .build();

        searcher.search(query, collector);
        final ScoreDoc[] hits = collector.topDocs().scoreDocs;
        assertEquals(2, hits.length);

        final List<KObject> results = new ArrayList<KObject>();
        for (int i = 0; i < hits.length; i++) {
            results.add(KObjectUtil.toKObject(searcher.doc(hits[i].doc)));
        }
        assertContains(results, path1);
        assertContains(results, path2);

        ((LuceneIndex) index).nrtRelease(searcher);
    }

    //Score Cards using org.drools.workbench.screens.guided.scorecard.backend.server.indexing.classes.Mortgage
    {
        final IndexSearcher searcher = ((LuceneIndex) index).nrtSearcher();
        final TopScoreDocCollector collector = TopScoreDocCollector.create(10, true);
        final Query query = new QueryBuilder().addTerm(new ValueTypeIndexTerm(
                "org.drools.workbench.screens.guided.scorecard.backend.server.indexing.classes.Mortgage"))
                .build();

        searcher.search(query, collector);
        final ScoreDoc[] hits = collector.topDocs().scoreDocs;
        assertEquals(1, hits.length);

        final List<KObject> results = new ArrayList<KObject>();
        for (int i = 0; i < hits.length; i++) {
            results.add(KObjectUtil.toKObject(searcher.doc(hits[i].doc)));
        }
        assertContains(results, path1);

        ((LuceneIndex) index).nrtRelease(searcher);
    }

    //Score Cards using org.drools.workbench.screens.guided.scorecard.backend.server.indexing.classes.Mortgage#amount
    {
        final IndexSearcher searcher = ((LuceneIndex) index).nrtSearcher();
        final TopScoreDocCollector collector = TopScoreDocCollector.create(10, true);
        final Query query = new QueryBuilder().addTerm(new ValueTypeIndexTerm(
                "org.drools.workbench.screens.guided.scorecard.backend.server.indexing.classes.Mortgage"))
                .addTerm(new ValueFieldIndexTerm("amount")).build();

        searcher.search(query, collector);
        final ScoreDoc[] hits = collector.topDocs().scoreDocs;
        assertEquals(1, hits.length);

        final List<KObject> results = new ArrayList<KObject>();
        for (int i = 0; i < hits.length; i++) {
            results.add(KObjectUtil.toKObject(searcher.doc(hits[i].doc)));
        }
        assertContains(results, path1);

        ((LuceneIndex) index).nrtRelease(searcher);
    }

    //Score Cards using java.lang.Integer
    {
        final IndexSearcher searcher = ((LuceneIndex) index).nrtSearcher();
        final TopScoreDocCollector collector = TopScoreDocCollector.create(10, true);
        final Query query = new QueryBuilder().addTerm(new ValueTypeIndexTerm("java.lang.Integer")).build();

        searcher.search(query, collector);
        final ScoreDoc[] hits = collector.topDocs().scoreDocs;
        assertEquals(2, hits.length);

        final List<KObject> results = new ArrayList<KObject>();
        for (int i = 0; i < hits.length; i++) {
            results.add(KObjectUtil.toKObject(searcher.doc(hits[i].doc)));
        }
        assertContains(results, path1);
        assertContains(results, path2);

        ((LuceneIndex) index).nrtRelease(searcher);
    }

}

From source file:org.drools.workbench.screens.guided.template.server.indexing.IndexGuidedRuleTemplateActionsTest.java

License:Apache License

@Test
public void testIndexGuidedRuleTemplateActions() throws IOException, InterruptedException {
    //Add test files
    final Path path = basePath.resolve("template1.template");
    final TemplateModel model = GuidedRuleTemplateFactory.makeModelWithActions(
            "org.drools.workbench.screens.guided.template.server.indexing", new ArrayList<Import>() {
                {//from  www.j a  v a  2 s .  c  o m
                    add(new Import(
                            "org.drools.workbench.screens.guided.template.server.indexing.classes.Applicant"));
                    add(new Import(
                            "org.drools.workbench.screens.guided.template.server.indexing.classes.Mortgage"));
                }
            }, "template1");
    final String xml = RuleTemplateModelXMLPersistenceImpl.getInstance().marshal(model);
    ioService().write(path, xml);

    Thread.sleep(5000); //wait for events to be consumed from jgit -> (notify changes -> watcher -> index) -> lucene index

    final Index index = getConfig().getIndexManager()
            .get(org.uberfire.ext.metadata.io.KObjectUtil.toKCluster(basePath.getFileSystem()));

    {
        final IndexSearcher searcher = ((LuceneIndex) index).nrtSearcher();
        final TopScoreDocCollector collector = TopScoreDocCollector.create(10, true);
        final Query query = new QueryBuilder()
                .addTerm(new ValueTypeIndexTerm(
                        "org.drools.workbench.screens.guided.template.server.indexing.classes.Applicant"))
                .build();

        searcher.search(query, collector);
        final ScoreDoc[] hits = collector.topDocs().scoreDocs;
        assertEquals(1, hits.length);

        final List<KObject> results = new ArrayList<KObject>();
        for (int i = 0; i < hits.length; i++) {
            results.add(KObjectUtil.toKObject(searcher.doc(hits[i].doc)));
        }
        assertContains(results, path);

        ((LuceneIndex) index).nrtRelease(searcher);
    }

    {
        final IndexSearcher searcher = ((LuceneIndex) index).nrtSearcher();
        final TopScoreDocCollector collector = TopScoreDocCollector.create(10, true);
        final Query query = new QueryBuilder()
                .addTerm(new ValueTypeIndexTerm(
                        "org.drools.workbench.screens.guided.template.server.indexing.classes.Mortgage"))
                .build();

        searcher.search(query, collector);
        final ScoreDoc[] hits = collector.topDocs().scoreDocs;
        assertEquals(1, hits.length);

        final List<KObject> results = new ArrayList<KObject>();
        for (int i = 0; i < hits.length; i++) {
            results.add(KObjectUtil.toKObject(searcher.doc(hits[i].doc)));
        }
        assertContains(results, path);

        ((LuceneIndex) index).nrtRelease(searcher);
    }

}