?
Lucene In Action ch2 系統的講解了 indexing,下面就來看看吧.
1,indexing的處理過程.
? 首先要把indexing的數據轉換為text,因為Lucene只能索引text,然后由Analysis來過慮text,把一些ch1中提到的所謂的stop words 過濾掉, 然后建立index.建立的index為inverted index 也就是所謂的倒排索引.
2,基本的ingex操作
?? 基本的操作 包括 :添加 刪除 更新.
I . 添加
下面我們看個例子代碼 BaseIndexingTestCase.class
01?package?lia.indexing; Heterogeneous Documents
|
這是一個測試超類 可以被其他的測試用例繼承 來測試不同的功能.上面帶有詳細的注釋.
在添加Field時, 會遇到同義詞的情況,添加同義詞由兩種方式:
?a.創建一個同義詞詞組,循環添加到Single Strng的不同Field中.
?b.把同義詞添加到一個Base word的field中.如下:
?
String baseWord = "fast";
String synonyms[] = String {"quick", "rapid", "speedy"};
Document doc = new Document();
doc.add(Field.Text("word", baseWord));
for (int i = 0; i < synonyms.length; i++) {
doc.add(Field.Text("word", synonyms[i]));
}
?
這樣 在Lucene內部把每個詞都添加的一個名為word的Field中,在搜索時 你可以使用任何一個給定的詞語.