<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                轉載請注明出處:[http://blog.csdn.net/xiaojimanman/article/details/42884921](http://blog.csdn.net/xiaojimanman/article/details/42884921) 此事例中的索引數據來自于上一篇博客創建的索引,索引中包含兩篇文檔,每一篇文檔中有兩個域 name 、 content 。 **索引搜索demo** 還是老樣子在介紹之前先看一個簡單索引搜索 demo程序。 ~~~ /** *@Description: 索引檢索demo */ package com.lulei.lucene.study; import java.io.File; import org.apache.lucene.analysis.Analyzer; import org.apache.lucene.analysis.standard.StandardAnalyzer; import org.apache.lucene.document.Document; import org.apache.lucene.index.DirectoryReader; import org.apache.lucene.queryparser.classic.QueryParser; import org.apache.lucene.search.IndexSearcher; import org.apache.lucene.search.Query; import org.apache.lucene.search.TopDocs; import org.apache.lucene.store.Directory; import org.apache.lucene.store.FSDirectory; import org.apache.lucene.util.Version; public class SearchIndex { public static void main(String[] args) { Directory directory = null; try { //索引硬盤存儲路徑 directory = FSDirectory.open(new File("D://study/index/testindex")); //讀取索引 DirectoryReader dReader = DirectoryReader.open(directory); //創建索引檢索對象 IndexSearcher searcher = new IndexSearcher(dReader); //指定分詞技術,這里采用的語言處理模塊要和創建索引的時候一致,否則檢索的結果很不理想 Analyzer analyzer = new StandardAnalyzer(Version.LUCENE_43); //創建查詢query,搜索詞為“空間向量” QueryParser parse = new QueryParser(Version.LUCENE_43, "content", analyzer); Query query = parse.parse("空間向量"); //檢索索引,獲取符合條件的前10條記錄 TopDocs topDocs = searcher.search(query, 10); if (topDocs != null) { System.out.println("總共查找到 " + topDocs.totalHits + " 條符合條件的記錄"); //循環輸出記錄內容 for (int i = 0; i < topDocs.scoreDocs.length; i++) { Document doc = searcher.doc(topDocs.scoreDocs[i].doc); System.out.println("第" + (i + 1) + "條內容為--\tname:\t" + doc.get("name") + "\tcontent:\t" + doc.get("content")); } } //關閉資源 dReader.close(); directory.close(); } catch (Exception e) { e.printStackTrace(); } } } ~~~ 上述demo程序運行結果截圖如下: ![](https://box.kancloud.cn/2016-02-22_56ca7bedc6fff.jpg) 可以看出關鍵詞 “空間向量” 的搜索結果為索引中的第二個文檔,可以通過document.get方法可以獲取對應的域值。 **搜索索引核心類** 在上述索引搜索過程中,用到了幾個核心類:**Directory**、**DirectoryReader**、**IndexSearcher**、**Analyzer**、**Query**、**TopDocs**,上一篇介紹過的核心類這里就不再繼續介紹了,這里就介紹一下之前沒有介紹過的類。 **DirectoryReader** DirectoryReader用于讀取索引,創建的dReader對象用于創建用于搜索的IndexSearcher對象。 **IndexSearcher** IndexSearcher用于索引的搜索,這個類公開了幾個搜索方法,它是連接索引的中心環節;可以將IndexSearcher類看做成一個以只讀打開索引的類,關于IndexSearcher的更深層次的內容,將在后面博客中介紹。 **Query** Lucene中含有許多具體Query(查詢)子類,Query子類有:TermQuery、BooleanQuery、PhraseQuery、PrefixQuery、PhrasePrefixQuery、TermRangQuery、NumericRangeQuery、FilteredQuery、SpanQuery等,這些子類也將會在以后的博客中一一介紹。 **TopDocs** TopDocs類是一個簡單的指針容器,指針一般指向前N個排名的搜索結果,搜索結果即匹配查詢條件的文檔。 到目前為止,我們可以用Lucene實現一個簡單的索引創建、搜索事例,在后面的幾篇博客中,我將會逐一介紹分詞技術、Query眾多子類、IndexSearcher的搜索API等,這幾部分可以通過源代碼的閱讀來理解。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看