Table of Contents NAME mgintro - introduction to the MG system DESCRIPTION The MG...
Table of Contents


mgintro - introduction to the MG system


The MG (Managing Gigabytes) system is a collection of programs which comprise a full-text retrieval system. A fulltext retrieval system allows one to create a database out of some given documents and then do queries upon it to retrieve any relevant documents. It is "full-text" in the sense that every word in the text is indexed and the query operates only on this index to do the searching.

For example, one could have a database on the book, "Alice in Wonderland." A document could be represented by each paragraph in the book. Having built up the "Alice" database, one could do queries such as "cat alice grin" and retrieve any paragraphs which match the query. The matching could either be boolean, that is the retrieved paragraphs contain a boolean expression of the query terms e.g. "cat alice grin"; or the matching could be ranked i.e. the most relevant documents to the query in relevance order, using some standard heuristic measure.

If one wants to find some particular information which is stored in a computer text file then one has a few alternative courses of action. One can operate directly on the text files with utilities such as grep or can process the text files into some form of database. Grep is generally limited to identifying lines by matching on regular expressions. If the collection of files which grep operates on becomes large, then continual passes over the entire text on each query becomes expensive. However, its usage is simple as no auxiliary files must be created.

A database consists of some data and indexes into that data. By having indexes one can query a large database quickly. Standard databases divide the data up into records of fields. This means that the granularity of search is a field. In a full-text system, such as MG, there are no fields (or there is an arbitrary sized list of word fields per document) and instead every word is indexed. Using this method, we can except free-form information and yet be fast on searches. The next question is what is the overhead of this database. In MG most files which are produced are in a compressed form. The two notable compressed files being the given data and the index, called an "inverted file". By compressing the files it is possible to have the size of the database smaller than the size of the source data.

Typical Usage

The most common use for MG has been as a search database on unix mail files. However, any set of text data can be used, one just needs to determine what constitutes a document (see mgintro++(1) ). MG has also been used on large collections such as Comact (Commonwealth Acts of Australia) which is around 132 megabytes and also on sizes up to around 2 gigabytes for TREC (a mixture of collections such as the Wall Street Journal and Associated Press).

Getting Started with MG
The first thing to do is install the package; please follow the INSTALL instructions. Having done this, it is necessary to set a couple of environment variables. MGDATA should be set to a directory which is to hold subdirectories for each database that you build. For example:

mkdir ~/mgdata; setenv MGDATA ~/mgdata.

If you want to try out building some sample databases then there is some sample data such as the "Alice In Wonderland" book. To make sure this is accessible you should set the environment variable MGSAMPLE. For example:

setenv MGSAMPLE ~/mg/SampleData

Here, "~/mg/SampleData" should contain alice.z .

To build the Alice database (to be contained in $MGDATA/alice subdirectory), type the command

mgbuild alice

Assuming all went well and some status messages were printed indicating the build was completed, then type

mgquery alice

to query the database. You can type a few words at the prompt, hit return and some relevant documents, Alice paragraphs, should be retrieved. Type ".set query ranked" to do ranking queries. Please refer to the mgquery(1) man-page for more information on the commands and options of mgquery(1).

The next thing to do is to use MG on a more personal database. If you have your mail stored in subdirectories of ~/Mail, such as is done if you use the typical set up of elm(1), then type

mgbuild allfiles

If, however, you keep all your mail in ~/mbox or ~/sentmail, then type

mgbuild mailfiles


The MG software for SunOS 4, Solaris, HPUX, and MIPS, can be ftped from: [] in the directory /pub/mg.


mgintro++(1), mgbuild(1), mgquery(1)
"Guide To The MG System", in Appendix A of the book:

Ian H. Witten, Alistair Moffat, and Timothy C. Bell Managing Gigabytes: Compressing and Indexing Documents and Images Van Nostrand Reinhold
xiv + 429 pages
ISBN 0-442-01863-0
Library of Congress catalog number TA1637 .W58 1994.

Table of Contents