?? datefiltertest.java
字號:
package ch13;
import java.io.IOException;
import org.apache.lucene.analysis.SimpleAnalyzer;
import org.apache.lucene.document.DateField;
import org.apache.lucene.document.Document;
import org.apache.lucene.document.Field;
import org.apache.lucene.index.IndexWriter;
import org.apache.lucene.index.Term;
import org.apache.lucene.search.DateFilter;
import org.apache.lucene.search.Hits;
import org.apache.lucene.search.IndexSearcher;
import org.apache.lucene.search.Query;
import org.apache.lucene.search.TermQuery;
import org.apache.lucene.store.RAMDirectory;
public class DateFilterTest
{
public static void main(String[] args) throws IOException
{
// 創建一個索引
RAMDirectory indexStore = new RAMDirectory();
//生成索引書寫器
IndexWriter writer = new IndexWriter(indexStore, new SimpleAnalyzer(), true);
//取得系統當前時間
long now = System.currentTimeMillis();
//生成一個Document對象
Document doc = new Document();
// 添加過去的一個時間
doc.add(Field.Keyword("datefield", DateField.timeToString(now - 1000)));
//添加要索引的內容
doc.add(Field.Text("body", "Today is a very sunny day in New York City"));
try
{
//將文本添到索引中
writer.addDocument(doc);
//優化索引
writer.optimize();
//關閉
writer.close();
} catch (IOException e1)
{
e1.printStackTrace();
}
//創建檢索器
IndexSearcher searcher = new IndexSearcher(indexStore);
//過濾應該在檢索結果中保存下來的
DateFilter df1 = DateFilter.Before("datefield", now);
//過濾不應該在檢索結果中出現的
DateFilter df2 = DateFilter.Before("datefield", now - 999999);
// 沒有使用過濾器的檢索
Query query1 = new TermQuery(new Term("body", "NoMatchForThis"));
// 檢索不存在的內容
Query query2 = new TermQuery(new Term("body", "sunny"));
//生成保存檢索結果的對象
Hits result;
try
{
//使用query1,返回檢索結果
result = searcher.search(query1);
System.out.println("There is "+result.length()+"Document(s) matched!");
} catch (IOException e)
{
e.printStackTrace();
}
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -