まず、理論的なお問い合わせ
クエリを作成します:建物は含まれていドキュメントドメインと語彙単位の文書のクエリオブジェクトを。(例:ファイル名:のLucene)
クエリ処理:適切な見つけるためにインデックス内のクエリオブジェクトの状態に応じて用語に従って、対応する用語を見つけ、次に、文書IDリスト。
第二に、コード分析
実装コード
/ ** * Luceneのエントリ *クエリのインデックス * / パブリック クラスQueryIndex { / ** *クエリインデックス *手順1:Directoryオブジェクトの場所指定したインデックスのライブラリ作成 *ステップ2:IndexReader(インデックス読み取り)ターゲットを作成します。 、あなたはディレクトリのオブジェクトを指定する必要があります *ステップ3:IndexSearcher(インデックスサーチ)オブジェクトを作成し、オブジェクトを指定する必要がIndexReader *ステップ4:クエリのドメインおよびクエリキーワードを指定するTermQuery(ドメインクエリ)オブジェクトを作成します *ステップ5:クエリ実行 リターンクエリ結果、クエリの結果と出力をトラバース:*ステップシックス *ステップ7:閉じるIndexReaderオブジェクト(フローオフ) * / @Test 公共 ボイド queryIndex()がスロー例外{ / * 手順1:ディレクトリ・オブジェクトを作成します、インデックスライブラリの場所を指定* / ディレクトリのディレクトリ = FSDirectory.open(新新をファイル( "E:\\ zhanghaoBF luceneSolr \\ \\ indexLibrary")toPath());. // ディスク上のパス(HDD) / * 手順2:IndexReader(インデックス読み取り)オブジェクトを作成します* / IndexReader IndexReader DirectoryReader.open =(ディレクトリ); // (このオブジェクトは、ストリームオブジェクトである)インデックスデータベースを開く / * ステップ3:IndexSearcher(インデックスサーチ)オブジェクトを作成します* / IndexSearcher IndexSearcher = 新新IndexSearcher(IndexReader); / * ステップ四:クエリのフィールドとクエリキーワードを指定するTermQuery(ドメインクエリ)オブジェクトを作成* / クエリクエリ = 新しい新 TermQuery(新新用語(「含むFileContent」、「Luceneのを」))// TermQueryがあり、正確なクエリ:PS / * 最初の5つのステップ:クエリを実行* / TopDocs TopDocs ; = indexSearcher.search(クエリは、2)// 検索クエリは、最も高いスコア2返し / * 返すクエリの結果、及びトラバースするために、クエリの結果を出力する:ステップ6を* / ScoreDoc [] scoreDocs = topDocs.scoreDocs。// PS:この文書は、ID配列を返されることに注意してください するための(ScoreDocのscoreDoc:scoreDocs){ int型 DOCID = scoreDoc.doc; // 文書ID の文書の文書indexSearcher.doc =(DOCID); // ドキュメントは、対応する 文字列のファイル名 = document.get( "FILENAME"); // ファイル名 のSystem.out.println(fileNameに); 文字列のファイルサイズ = document.get( "ファイルサイズ"); //ファイルサイズ のSystem.out.println(ファイルサイズ); 文字列filePathに = document.get( "filePathに"); // ファイルパス のSystem.out.println(filePathに); System.out.printlnは(「------- ---------- ---豪華な分割線" ); } / * ステップ7:近距離物体のIndexReader(ストリームオフ)* / indexReader.close(); } }
人気の検索方法