Host by : Logo 2003
Yet an another Python Indexer. Like lot of people in my case, when you didn't find the software providing the functionalities you are looking for, you develop your own.
After checking carefully some very interesting projects like the Indexer from David Mertz, Lupy and Pyndex from Divmod, I've decided to write ViIndex.

The main particularity of ViIndex is his ability to store the file name and line number of each keywords. This allow ViIndex to search keywords within a defined "line frame".


  • August 27th, 2003 : version 0.6.1
  • Bug fixes
  • August 18th, 2003 : version 0.6
  • Initial public release


  • Indexer
    • Add one file at once or
    • walk trough a directory tree.
    • Does not re-index already indexed files (this decision is based on the modification timestamp of the file)
    • Allow you to specify the list of type of files to scan (f.e. ['*.py','*.c'])
    • Allow you to exclude specific files (f.e. ['*.exe','*.tar','*.tgz'])
    • User can decide how to store keywords in the Index DB : all in one big files or split between several files.
      This allow the user to decide the best balance between Index performance and Query performance
    • To reduce Index DB size, you store the keywords in a " non-casesensitive" format
  • Splitter
    • Allow you to scan any kind of source (even binary)
    • Store in the DB the position of the keyword in the file
  • Finder
    • You can defined the &line frame" in which all keywords must reside.
    • You can do a "+" and "-" search. You decide which keywords MUST be present (+) in the line frame, and those that CANNOT be present (-)
    • You can use regular expression as keywords (f.e. 'keyword\s*')
    • You can do a case-not-sensitive search.
  • Displayer
    • You can regroup the results. Instead of having a result like : 1,2,3,4,5,17,18,19,20; you will get : 1-5, 17-20
    • You can extract the content of the file where your keywords reside.
    • You can filter the result. With a regular expression you can filter the result of the search.
This tool is fully written in Python. This guarantee a portability on Unix, windows and Mac operating systems.


This code is released under the GPL License.


  • Testing on Linux
  • Testing on Windows
  • Testing on Mac
  • HTTP Displayer : Build a Displayer class that will return the result as an html page.
  • Build a simple CGIHTTServer as user interface
  • Build a class to store indexes in DB via
  • Build a class to store indexes in BSDDB (lighter than a common DB), maybe via anydbm


You can find it at sourceforge.


Simply untar the the tar file and type : python -h for syntax details.

August 18th, 2003 Vincent Delft