| /* |
| * Licensed to the Apache Software Foundation (ASF) under one or more |
| * contributor license agreements. See the NOTICE file distributed with |
| * this work for additional information regarding copyright ownership. |
| * The ASF licenses this file to You under the Apache License, Version 2.0 |
| * (the "License"); you may not use this file except in compliance with |
| * the License. You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| package org.apache.lucene.benchmark.byTask.programmatic; |
| |
| import java.util.Properties; |
| |
| import org.apache.lucene.benchmark.byTask.PerfRunData; |
| import org.apache.lucene.benchmark.byTask.tasks.AddDocTask; |
| import org.apache.lucene.benchmark.byTask.tasks.CloseIndexTask; |
| import org.apache.lucene.benchmark.byTask.tasks.CreateIndexTask; |
| import org.apache.lucene.benchmark.byTask.tasks.RepSumByNameTask; |
| import org.apache.lucene.benchmark.byTask.tasks.TaskSequence; |
| import org.apache.lucene.benchmark.byTask.utils.Config; |
| |
| /** |
| * Sample performance test written programmatically - no algorithm file is needed here. |
| */ |
| public class Sample { |
| |
| public static void main(String[] args) throws Exception { |
| Properties p = initProps(); |
| Config conf = new Config(p); |
| PerfRunData runData = new PerfRunData(conf); |
| |
| // 1. top sequence |
| TaskSequence top = new TaskSequence(runData,null,null,false); // top level, not parallel |
| |
| // 2. task to create the index |
| CreateIndexTask create = new CreateIndexTask(runData); |
| top.addTask(create); |
| |
| // 3. task seq to add 500 docs (order matters - top to bottom - add seq to top, only then add to seq) |
| TaskSequence seq1 = new TaskSequence(runData,"AddDocs",top,false); |
| seq1.setRepetitions(500); |
| seq1.setNoChildReport(); |
| top.addTask(seq1); |
| |
| // 4. task to add the doc |
| AddDocTask addDoc = new AddDocTask(runData); |
| //addDoc.setParams("1200"); // doc size limit if supported |
| seq1.addTask(addDoc); // order matters 9see comment above) |
| |
| // 5. task to close the index |
| CloseIndexTask close = new CloseIndexTask(runData); |
| top.addTask(close); |
| |
| // task to report |
| RepSumByNameTask rep = new RepSumByNameTask(runData); |
| top.addTask(rep); |
| |
| // print algorithm |
| System.out.println(top.toString()); |
| |
| // execute |
| top.doLogic(); |
| } |
| |
| // Sample programmatic settings. Could also read from file. |
| private static Properties initProps() { |
| Properties p = new Properties(); |
| p.setProperty ( "task.max.depth.log" , "3" ); |
| p.setProperty ( "max.buffered" , "buf:10:10:100:100:10:10:100:100" ); |
| p.setProperty ( "doc.maker" , "org.apache.lucene.benchmark.byTask.feeds.ReutersContentSource" ); |
| p.setProperty ( "log.step" , "2000" ); |
| p.setProperty ( "doc.delete.step" , "8" ); |
| p.setProperty ( "analyzer" , "org.apache.lucene.analysis.standard.StandardAnalyzer" ); |
| p.setProperty ( "doc.term.vector" , "false" ); |
| p.setProperty ( "directory" , "FSDirectory" ); |
| p.setProperty ( "query.maker" , "org.apache.lucene.benchmark.byTask.feeds.ReutersQueryMaker" ); |
| p.setProperty ( "doc.stored" , "true" ); |
| p.setProperty ( "docs.dir" , "reuters-out" ); |
| p.setProperty ( "compound" , "cmpnd:true:true:true:true:false:false:false:false" ); |
| p.setProperty ( "doc.tokenized" , "true" ); |
| p.setProperty ( "merge.factor" , "mrg:10:100:10:100:10:100:10:100" ); |
| return p; |
| } |
| |
| |
| |
| } |