lucene學習筆記三 各種query

2021-08-29 21:44:25 字數 848 閱讀 4830

1, 有時對於乙個document來說,有一些field會被頻繁地操作,而另一些field則不會。這時可以將頻繁操作的field和其他field分開存放,而在搜尋時同時檢索這兩部分field而提取出乙個完整的document。 這要求兩個索引包含的document的數量必須相同。

在建立索引的時候,可以同時建立多個indexwriter,將乙個document根據需要拆分成多個包含部分field的document,並將這些document分別新增到不同的索引。

而在搜尋時,則必須借助parallelreader類來整合。

directory dir1=fsdirectory.getdirectory(new file(index_dir1),false);

directory dir2=fsdirectory.getdirectory(new file(index_dir2),false);

parallelreader preader=new parallelreader();

preader.add(indexreader.open(dir1));

preader.add(indexreader.open(dir2));

10.2 讀寫互斥性

同一時刻只能有乙個對索引的寫操作,在寫的同時可以進行搜尋

10.3 檔案鎖

在寫索引的過程中強行退出將在tmp目錄留下乙個lock檔案,使以後的寫操作無法進行,可以將其手工刪除

10.4 時間格式

lucene只支援一種時間格式yymmddhhmmss,所以你傳乙個yy-mm-dd hh:mm:ss的時間給lucene它是不會當作時間來處理的

Lucene 學習筆記

調整索引索引效能 在乙個典型的索引應用中,程式效能的瓶頸存在於將索引檔案寫入磁碟的過程中。如果你曾經分析過索引過索引應用程式,應該會發現執行程式大部分時間都消耗在操作索引檔案的程式段上,因此我們必要使lucene索引新物件和修改索引檔案時變得更智慧型。當新的document物件新增到lucene的索...

lucene學習筆記

public class luceneadd catch exception e public class lucenesearch public static void main string args file indexdir new file d index try 在磁碟中檢索索引 dir...

Lucene學習筆記

1 lucene的field中的store和index屬性 如果field的store是yes的話,表明這個資料是要儲存在lucene檔案中的,可以用get方法得到 如果field的index是analyzed的話,表明這個資料是有被索引的,可以被搜尋的。這個兩個屬性的四種組合分別的含義是 a st...