- Lucene 4 Cookbook
- Edwood Ng Vineeth Mohan
- 375字
- 2021-07-16 14:07:48
Obtaining an IndexWriter
The IndexWriter class provides functionality to create and manage index. The class can be found in Lucene-core. It handles basic operations where you can add, delete, and update documents. It also handles more complex use cases that we will cover during the course of this book.
An IndexWriter constructor takes two arguments:
IndexWriterDirectoryIndexWriterConfig https://lucene.apache.org/core/4_10_0/core/org/apache/lucene/index /IndexWriter.htmlIndexWriter(org.apache.lucene.store.Directory, org.apache.lucene.index.IndexWriterConfig)IndexWriter(https://lucene.apache.org/core/4_10_0/core/org/apache/lucene/store/Directory.html Directory d, https://lucene.apache.org/core/4_10_0/core/org/apache/lucene/index/IndexWriterConfig.html"IndexWriterConfig conf)
Construct a new IndexWriter
as per the settings given in the conf
file.
The first argument is a Directory object. Directory is a location where the Lucene index is stored. The second argument is an IndexWriterConfig
object where it holds the configuration information. Lucene provides a number of directory implementations. For performance or quick prototyping, we can use RAMDirectory to store the index entirely in memory. Otherwise, the index is typically stored in FSDirectory on a file system. Lucene has several FSDirectory implementations that have different strengths and weaknesses depending on your hardware and environment. In most cases, we should let Lucene decide which implementation to use by calling FSDirectory.open
(File path).
How to do it…
We need to first define an analyzer to initialize IndexWriterConfig
. Then, a Directory should be created to tell Lucene where to store the index. With these two objects defined, we are ready to instantiate an IndexWriter.
The following is a code snippet that shows you how to obtain an IndexWriter:
Analyzer analyzer = new WhitespaceAnalyzer(); Directory directory = new RAMDirectory(); IndexWriterConfig config = new IndexWriterConfig(Version.LATEST, analyzer); IndexWriter indexWriter = new IndexWriter(directory, config);
How it works…
First, we instantiate a WhitespaceAnalyzer
to parse input text, and tokenize text into word tokens. Then, we create an in-memory Directory by instantiating RAMDirectory
. We configure IndexWriterConfig
with the WhitespaceAnalyzer
we just created and finally, we pass both Directory and IndexWriterConfig
to create an IndexWriter. The IndexWriter is now ready to update the index.
An IndexWriter consists of two major components, directory and analyzer. These are necessary so that Lucene knows where to persist indexing information and what treatment to apply to the documents before they are indexed. Analyzer's treatment is especially important because it maintains data consistency. If an index already exists in the specified directory, Lucene will update the existing index. Otherwise, a new index is created.
- GeoServer Cookbook
- 企業級Java EE架構設計精深實踐
- 前端跨界開發指南:JavaScript工具庫原理解析與實戰
- 造個小程序:與微信一起干件正經事兒
- Arduino by Example
- PostgreSQL 11從入門到精通(視頻教學版)
- 領域驅動設計:軟件核心復雜性應對之道(修訂版)
- 學習OpenCV 4:基于Python的算法實戰
- PHP從入門到精通(第4版)(軟件開發視頻大講堂)
- 51單片機C語言開發教程
- Mastering Backbone.js
- Mastering Elixir
- Getting Started with React VR
- 基于GPU加速的計算機視覺編程:使用OpenCV和CUDA實時處理復雜圖像數據
- Instant OpenCV for iOS