01: package org.apache.lucene.benchmark.byTask.tasks;
02:
03: /**
04: * Licensed to the Apache Software Foundation (ASF) under one or more
05: * contributor license agreements. See the NOTICE file distributed with
06: * this work for additional information regarding copyright ownership.
07: * The ASF licenses this file to You under the Apache License, Version 2.0
08: * (the "License"); you may not use this file except in compliance with
09: * the License. You may obtain a copy of the License at
10: *
11: * http://www.apache.org/licenses/LICENSE-2.0
12: *
13: * Unless required by applicable law or agreed to in writing, software
14: * distributed under the License is distributed on an "AS IS" BASIS,
15: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16: * See the License for the specific language governing permissions and
17: * limitations under the License.
18: */
19:
20: import org.apache.lucene.benchmark.byTask.PerfRunData;
21: import org.apache.lucene.benchmark.byTask.feeds.QueryMaker;
22:
23: /**
24: * Search and Traverse task.
25: *
26: * <p>Note: This task reuses the reader if it is already open.
27: * Otherwise a reader is opened at start and closed at the end.
28: * <p/>
29: *
30: * <p>Takes optional param: traversal size (otherwise all results are traversed).</p>
31: *
32: * <p>Other side effects: counts additional 1 (record) for each traversed hit.</p>
33: */
34: public class SearchTravTask extends ReadTask {
35: protected int traversalSize = Integer.MAX_VALUE;
36:
37: public SearchTravTask(PerfRunData runData) {
38: super (runData);
39: }
40:
41: public boolean withRetrieve() {
42: return false;
43: }
44:
45: public boolean withSearch() {
46: return true;
47: }
48:
49: public boolean withTraverse() {
50: return true;
51: }
52:
53: public boolean withWarm() {
54: return false;
55: }
56:
57: public QueryMaker getQueryMaker() {
58: return getRunData().getQueryMaker(this );
59: }
60:
61: public int traversalSize() {
62: return traversalSize;
63: }
64:
65: public void setParams(String params) {
66: super .setParams(params);
67: traversalSize = (int) Float.parseFloat(params);
68: }
69:
70: /* (non-Javadoc)
71: * @see org.apache.lucene.benchmark.byTask.tasks.PerfTask#supportsParams()
72: */
73: public boolean supportsParams() {
74: return true;
75: }
76: }
|