通過佇列解決Lucene檔案併發建立索引

2022-09-01 03:15:10 字數 2282 閱讀 2676

public

sealed

class

searchindexmanager

public

static

searchindexmanager getinstance()

queue

queue = new queue();

//////

向佇列中新增資料

/// ///

//////

public

void addqueue(string id,string title,string

content)

//////

向佇列中新增要刪除資料

/// ///

public

void deletequeue(string

id)

//////

開啟執行緒,掃瞄佇列,從佇列中獲取資料

/// public

void

startthread()

private

void

writeindexcontent()

else}}

private

void

createindexcontent()

}indexwriter writer = new indexwriter(directory, new panguanalyzer(), !isupdate, lucene.net.index.indexwriter.maxfieldlength.unlimited);//

向索引庫中寫索引。這時在這裡加鎖。

while(queue.count>0

)

document document = new document();//

表示一篇文件。

表示是否儲存原值。只有當field.store.yes在後面才能用doc.get("number")取出值來.field.index. not_analyzed:不進行分詞儲存

document.add(new field("id"

, indexcontent.id.tostring(), field.store.yes, field.index.not_analyzed));

analyzed:進行分詞儲存:也就是要進行全文的字段要設定分詞 儲存(因為要進行模糊查詢)

不僅儲存分詞還儲存分詞的距離。

document.add(new field("

title

", indexcontent.title, field.store.yes, field.index.analyzed, lucene.net.documents.field.termvector.with_positions_offsets));

document.add(

new field("

content

", indexcontent.content, field.store.yes, field.index.analyzed, lucene.net.documents.field.termvector.with_positions_offsets));

writer.adddocument(document);

}writer.close();

//會自動解鎖。

directory.close();//

不要忘了close,否則索引結果搜不到

} }

view code

public

enum

luceneenum

enum luceneenum

public

class

indexcontent

public

string title

public

string content

public luceneenum luceneenum

}

indexcontent

private static readonly searchindexmanager searchindexmanager = new searchindexmanager();要採用單例模式

private searchindexmanager()

public static searchindexmanager getinstance()

在新增、刪除需要檢索的表單時呼叫佇列的增加、刪除

在global呼叫

如何重置Joomla並解決檔案

這種方法無法解決您的所有問題。它主要適用於joomla核心引起的問題。這些型別的問題通常在您執行joomla核心更新後出現。如果由於某些原因 例如伺服器資源耗盡或錯誤 而僅更新了一些檔案,則可能經常會看到致命錯誤或奇怪的可用性問題。例如,您可能會看到管理員下拉列表停止工作。或者您可能會發現您無法建立...

java通過ftp方式讀取檔案,並解析入庫

對於自己是個總結,下次使用的時候直接copy,要注意的地方是ftp訪問檔案的方式,訪問的是ftp使用者的home目錄,而不是從絕對路徑訪問。private final static string deleteuser delete from customermanager user where cm...

對sql檔案進行讀取並通過JDBC批量執行

public class mysqlhandle static catch exception e 建構函式,包括連線資料庫等操作 public mysqlhandle catch exception e 帶引數建構函式,用於指定引數連線資料庫 public mysqlhandle string d...