7、索引庫的查詢一之:簡單查詢

1.1  TermQuery
只需要指定要搜索的域和要搜索的關鍵詞就可以搜索。
//使用TermQuery查詢
@Test
public void testTermQuery() throws Exception {
    //以讀的方式打開索引庫
    Directory directory = FSDirectory.open(Paths.get("D:\\LucentTest\\luceneIndex"));
    //創建一個IndexReader
    IndexReader indexReader = DirectoryReader.open(directory);
    //創建一個IndexSearcher對象
    IndexSearcher indexSearcher = new IndexSearcher(indexReader);
    //創建一個查詢對象
    Query query = new TermQuery(new Term("content", "java"));
    //執行查詢
    TopDocs topDocs = indexSearcher.search(query, 10);
    System.out.println("查詢結果總數量:" + topDocs.totalHits);
    for (ScoreDoc scoreDoc : topDocs.scoreDocs) {
        //取document對象
        Document document = indexSearcher.doc(scoreDoc.doc);
        System.out.println(document.get("name"));
        System.out.println(document.get("path"));
    }
    indexReader.close();
}
1.2  MatchAllDocsQuery
//匹配所有文檔
@Test
public void testMatchAllDocsQuery() throws Exception {
    //以讀的方式打開索引庫
    Directory directory = FSDirectory.open(Paths.get("D:\\LucentTest\\luceneIndex"));
    //創建一個IndexReader
    IndexReader indexReader = DirectoryReader.open(directory);
    //創建一個IndexSearcher對象
    IndexSearcher indexSearcher = new IndexSearcher(indexReader);
    //創建一查詢對象
    Query query = new MatchAllDocsQuery();
    //執行查詢
    //執行查詢
    TopDocs topDocs = indexSearcher.search(query, 10);
    System.out.println("查詢結果總數量:" + topDocs.totalHits);
    for (ScoreDoc scoreDoc : topDocs.scoreDocs) {
        //取document對象
        Document document = indexSearcher.doc(scoreDoc.doc);
        System.out.println(document.get("name"));
        //System.out.println(document.get("content"));
        System.out.println(document.get("path"));
        System.out.println(document.get("size"));
    }
    indexSearcher.getIndexReader().close();
}
//不匹配所有文檔
@Test
public void testMatchNoDocsQuery() throws Exception {
    //以讀的方式打開索引庫
    Directory directory = FSDirectory.open(Paths.get("D:\\LucentTest\\luceneIndex"));
    //創建一個IndexReader
    IndexReader indexReader = DirectoryReader.open(directory);
    //創建一個IndexSearcher對象
    IndexSearcher indexSearcher = new IndexSearcher(indexReader);
    //創建一查詢對象
    Query query = new MatchNoDocsQuery();
    //執行查詢
    //執行查詢
    TopDocs topDocs = indexSearcher.search(query, 10);
    System.out.println("查詢結果總數量:" + topDocs.totalHits);
    for (ScoreDoc scoreDoc : topDocs.scoreDocs) {
        //取document對象
        Document document = indexSearcher.doc(scoreDoc.doc);
        System.out.println(document.get("name"));
    }
    indexSearcher.getIndexReader().close();
}

下面是小編的微信轉帳二維碼,小編再次謝謝讀者的支持,小編會更努力的

----請看下方↓↓↓↓↓↓↓

百度搜索 Drools從入門到精通:可下載開源全套Drools教程

深度Drools教程不段更新中:


更多Drools實戰陸續發佈中………

掃描下方二維碼關注公衆號 ↓↓↓↓↓↓↓↓↓↓





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章