Lucene API Documentation

The Lucene API is divided into several packages: To use Lucene, an application should:
  1. Create Document's by adding Field's.
  2. Create an IndexWriter and add documents to to it with addDocument();
  3. Call QueryParser.parse() to build a query from a string; and
  4. Create an IndexSearcher and pass the query to it's search() method.
Some simple examples of code which does this are: To demonstrate these, try:
F:\> java demo.IndexFiles rec.food.recipes\soups
adding rec.food.recipes\soups\abalone-chowder
  [ ... ]

F:\> java demo.SearchFiles
Query: chowder
Searching for: chowder
34 total matching documents
0. rec.food.recipes\soups\spam-chowder
  [ ... thirty-four documents contain the word "chowder", "spam-chowder" with the greatest density.]

Query: path:chowder
Searching for: path:chowder
31 total matching documents
0. rec.food.recipes\soups\abalone-chowder
  [ ... only thrity-one have "chowder" in the "path" field. ]

Query: path:"clam chowder"
Searching for: path:"clam chowder"
10 total matching documents
0. rec.food.recipes\soups\clam-chowder
  [ ... only ten have "clam chowder" in the "path" field. ]

Query: path:"clam chowder" AND manhattan
Searching for: +path:"clam chowder" +manhattan
2 total matching documents
0. rec.food.recipes\soups\clam-chowder
  [ ... only two also have "manhattan" in the contents. ]
    [ Note: "+" and "-" are canonical, but "AND", "OR" and "NOT" may be used. ]

The IndexHtml demo is more sophisticated.  It incrementally maintains an index of HTML files, adding new files as they appear, deleting old files as they disappear and re-indexing files as they change.
F:\>java demo.IndexHTML -create java\jdk1.1.6\docs\relnotes
adding java/jdk1.1.6/docs/relnotes/SMICopyright.html
  [ ... create an index containing all the relnotes ]

F:\>del java\jdk1.1.6\docs\relnotes\smicopyright.html

F:\>java demo.IndexHTML java\jdk1.1.6\docs\relnotes
deleting java/jdk1.1.6/docs/relnotes/SMICopyright.html

HTML indexes are searched using SUN's JavaWebServer (JWS) and Search.jhtml.  To use this: Note that indexes can be updated while searches are going on.  Search.jhtml will re-open the index when it is updated so that the latest version is immediately available.