pylucene 3.5.0-3
[pylucene.git] / lucene-java-3.5.0 / lucene / contrib / instantiated / src / java / org / apache / lucene / store / instantiated / package.html
diff --git a/lucene-java-3.5.0/lucene/contrib/instantiated/src/java/org/apache/lucene/store/instantiated/package.html b/lucene-java-3.5.0/lucene/contrib/instantiated/src/java/org/apache/lucene/store/instantiated/package.html
new file mode 100644 (file)
index 0000000..c5422ed
--- /dev/null
@@ -0,0 +1,95 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements.  See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License.  You may obtain a copy of the License at
+
+     http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<head>
+  <title>InstantiatedIndex</title>
+</head>
+<body>
+<p>InstantiatedIndex, alternative RAM store for small corpora.</p>
+
+<p>@lucene.experimental</p>
+<h2>Abstract</h2>
+
+<p>
+  Represented as a coupled graph of class instances, this
+  all-in-memory index store implementation delivers search
+  results up to a 100 times faster than the file-centric RAMDirectory
+  at the cost of greater RAM consumption.
+</p>
+
+<h2>API</h2>
+
+<p>
+  Just as the default store implementation, InstantiatedIndex
+  comes with an IndexReader and IndexWriter. The latter share
+  many method signatures with the file-centric IndexWriter.
+</p>
+
+<p>
+  It is also possible to load the content of another index
+  by passing an IndexReader to the InstantiatedIndex constructor.
+</p>
+
+<h2>Performance</h2>
+
+<p>
+  At a few thousand ~160 characters long documents
+  InstantiatedIndex outperforms RAMDirectory some 50x,
+  15x at 100 documents of 2000 characters length,
+  and is linear to RAMDirectory at 10,000 documents of 2000 characters length.
+</p>
+
+<p>Mileage may vary depending on term saturation.</p>
+
+<img src="doc-files/HitCollectionBench.jpg" alt="benchmark"/>
+
+<p>
+  Populated with a single document InstantiatedIndex is almost, but not quite, as fast as MemoryIndex.    
+</p>
+
+<p>
+  It takes more or less the same time to populate an InstantiatedIndex
+  as it takes to populate a RAMDirectory. Hardly any effort has been put
+  in to optimizing the InstantiatedIndexWriter, only minimizing the amount
+  of time needed to write-lock the index has been considered.
+</p>
+
+<h2>Caveats</h2>
+<ul>
+  <li>No locks! Consider using InstantiatedIndex as if it was immutable.</li>
+  <li>No documents with fields containing readers.</li>
+  <li>No field selection when retrieving documents, as all stored field are available in memory.</li>
+  <li>Any document returned must cloned if they are to be touched.</li>
+  <li>Norms array returned must not be touched.</li>
+</ul>
+
+<h2>Use cases</h2>
+
+<p>
+  Could replace any small index that could do with greater response time.
+  spell check a priori index,
+  the index of new documents exposed to user search agent queries,
+  to compile classifiers in machine learning environments, etc.
+</p>
+
+<h2>Class diagram</h2>
+<a href="doc-files/classdiagram.png"><img width="640px" height="480px" src="doc-files/classdiagram.png" alt="class diagram"></a>
+<br/>
+<a href="doc-files/classdiagram.uxf">Diagram</a> rendered using <a href="http://umlet.com">UMLet</a> 7.1.
+</body>
+</html>