X-Git-Url: https://git.mdrn.pl/pylucene.git/blobdiff_plain/a2e61f0c04805cfcb8706176758d1283c7e3a55c..aaeed5504b982cf3545252ab528713250aa33eed:/lucene-java-3.5.0/lucene/src/java/overview.html diff --git a/lucene-java-3.5.0/lucene/src/java/overview.html b/lucene-java-3.5.0/lucene/src/java/overview.html new file mode 100644 index 0000000..83ae570 --- /dev/null +++ b/lucene-java-3.5.0/lucene/src/java/overview.html @@ -0,0 +1,193 @@ + + + + + Apache Lucene API + + + +

Apache Lucene is a high-performance, full-featured text search engine library. +Here's a simple example how to use Lucene for indexing and searching (using JUnit +to check if the results are what we expect):

+ + + + + + +
+    Analyzer analyzer = new StandardAnalyzer(Version.LUCENE_CURRENT);
+
+    // Store the index in memory:
+    Directory directory = new RAMDirectory();
+    // To store an index on disk, use this instead:
+    //Directory directory = FSDirectory.open("/tmp/testindex");
+    IndexWriter iwriter = new IndexWriter(directory, analyzer, true,
+                                          new IndexWriter.MaxFieldLength(25000));
+    Document doc = new Document();
+    String text = "This is the text to be indexed.";
+    doc.add(new Field("fieldname", text, Field.Store.YES,
+        Field.Index.ANALYZED));
+    iwriter.addDocument(doc);
+    iwriter.close();
+    
+    // Now search the index:
+    IndexReader ireader = IndexReader.open(directory); // read-only=true
+    IndexSearcher isearcher = new IndexSearcher(ireader);
+    // Parse a simple query that searches for "text":
+    QueryParser parser = new QueryParser("fieldname", analyzer);
+    Query query = parser.parse("text");
+    ScoreDoc[] hits = isearcher.search(query, null, 1000).scoreDocs;
+    assertEquals(1, hits.length);
+    // Iterate through the results:
+    for (int i = 0; i < hits.length; i++) {
+      Document hitDoc = isearcher.doc(hits[i].doc);
+      assertEquals("This is the text to be indexed.", hitDoc.get("fieldname"));
+    }
+    isearcher.close();
+    ireader.close();
+    directory.close();
+ + + + + +

The Lucene API is divided into several packages:

+ + +To use Lucene, an application should: +
    +
  1. +Create Documents by +adding +Fields;
  2. + +
  3. +Create an IndexWriter +and add documents to it with addDocument();
  4. + +
  5. +Call QueryParser.parse() +to build a query from a string; and
  6. + +
  7. +Create an IndexSearcher +and pass the query to its search() +method.
  8. +
+Some simple examples of code which does this are: + +To demonstrate these, try something like: +
> java -cp lucene.jar:lucene-demo.jar:lucene-analyzers-common.jar org.apache.lucene.demo.IndexFiles rec.food.recipes/soups +
adding rec.food.recipes/soups/abalone-chowder +
  [ ... ] + +

> java -cp lucene.jar:lucene-demo.jar:lucene-analyzers-common.jar org.apache.lucene.demo.SearchFiles +
Query: chowder +
Searching for: chowder +
34 total matching documents +
1. rec.food.recipes/soups/spam-chowder +
  [ ... thirty-four documents contain the word "chowder" ... ] + +

Query: "clam chowder" AND Manhattan +
Searching for: +"clam chowder" +manhattan +
2 total matching documents +
1. rec.food.recipes/soups/clam-chowder +
  [ ... two documents contain the phrase "clam chowder" +and the word "manhattan" ... ] +
    [ Note: "+" and "-" are canonical, but "AND", "OR" +and "NOT" may be used. ]

+ + +