有關Lucene的問題 6 Lucene的事務性

2021-08-30 16:40:35 字數 1668 閱讀 5496

所謂事務性,本多指資料庫的屬性,包括acid四個基本要素:原子性(atomicity)、一致性(consistency)、隔離性(isolation)、永續性(durability)。

我們這裡主要討論隔離性,lucene的indexreader和indexwriter具有隔離性。

下面我們舉幾個例子來說明上述隔離性:

(1) 首先做準備,索引十篇文件

file indexdir = new file("testisolation/index");

indexwriter writer = new indexwriter(fsdirectory.open(indexdir), new standardanalyzer(version.lucene_current), true, indexwriter.maxfieldlength.limited);

for(int i =0; i < 10; i++){

indexdocs(writer);

writer.close();

(2) 然後再索引十篇文件,並不commit

writer = new indexwriter(fsdirectory.open(indexdir), new standardanalyzer(version.lucene_current), indexwriter.maxfieldlength.limited);

for(int i =0; i < 10; i++){

indexdocs(writer);

(3) 開啟乙個indexreader,但是由於indexwriter沒有commit,所以仍然僅看到十篇文件。

indexreader reader = indexreader.open(fsdirectory.open(indexdir));

indexsearcher searcher = new indexsearcher(reader);

topdocs docs = searcher.search(new termquery(new term("contents","hello")), 50);

system.out.println(docs.totalhits);

(4) indexwriter進行提交commit

writer.commit();

(5) 不重新開啟indexreader,進行搜尋,仍然僅看到十篇文件。

docs = searcher.search(new termquery(new term("contents","hello")), 50);

system.out.println(docs.totalhits);

(6) indexreader重新開啟,則可以看到二十篇文件。

reader = indexreader.open(fsdirectory.open(indexdir));

searcher = new indexsearcher(reader);

docs = searcher.search(new termquery(new term("contents","hello")), 50);

system.out.println(docs.totalhits);

有關Lucene的問題 6 Lucene的事務性

所謂事務性,本多指資料庫的屬性,包括acid四個基本要素 原子性 atomicity 一致性 consistency 隔離性 isolation 永續性 durability 我們這裡主要討論隔離性,lucene的indexreader和indexwriter具有隔離性。下面我們舉幾個例子來說明上述...

有關Lucene的問題 6 Lucene的事務性

所謂事務性,本多指資料庫的屬性,包括acid四個基本要素 原子性 atomicity 一致性 consistency 隔離性 isolation 永續性 durability 我們這裡主要討論隔離性,lucene的indexreader和indexwriter具有隔離性。下面我們舉幾個例子來說明上述...

sqlbox的有關問題

1.先裝ensemble 2010.2.8.1104 再裝sqldbx 應用程式可以使用sqlsetenvattr來啟用連線池。當odbc應用程式呼叫sqldisconnect初次,該連線儲存到池。任何後續sqlconnect sqldisconnect匹配必需條件將重用第乙個連線。3 3 sqld...