1 # ====================================================================
2 # Licensed under the Apache License, Version 2.0 (the "License");
3 # you may not use this file except in compliance with the License.
4 # You may obtain a copy of the License at
6 # http://www.apache.org/licenses/LICENSE-2.0
8 # Unless required by applicable law or agreed to in writing, software
9 # distributed under the License is distributed on an "AS IS" BASIS,
10 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11 # See the License for the specific language governing permissions and
12 # limitations under the License.
13 # ====================================================================
18 from datetime import timedelta
21 IndexWriter, SimpleAnalyzer, Document, Field, Term, FSDirectory, System
24 class IndexTuningDemo(object):
29 print "Usage: python IndexTuningDemo.py <numDocs> <mergeFactor> <maxMergeDocs> <maxBufferedDocs>"
32 docsInIndex = int(argv[1])
34 # create an index called 'index-dir' in a temp directory
35 indexDir = os.path.join(System.getProperty('java.io.tmpdir', 'tmp'),
37 dir = FSDirectory.getDirectory(indexDir, True)
38 analyzer = SimpleAnalyzer()
39 writer = IndexWriter(dir, analyzer, True)
41 # set variables that affect speed of indexing
42 writer.setMergeFactor(int(argv[2]))
43 writer.setMaxMergeDocs(int(argv[3]))
44 writer.setMaxBufferedDocs(int(argv[4]))
45 # writer.infoStream = System.out
47 print "Merge factor: ", writer.getMergeFactor()
48 print "Max merge docs:", writer.getMaxMergeDocs()
49 print "Max buffered docs:", writer.getMaxBufferedDocs()
52 for i in xrange(docsInIndex):
54 doc.add(Field("fieldname", "Bibamus",
55 Field.Store.YES, Field.Index.TOKENIZED))
56 writer.addDocument(doc)
59 print "Time: ", timedelta(seconds=time() - start)
61 main = classmethod(main)