0

これは、luceneで何かを検索するための私のコードです。

        ScoreDoc[] hits = null;
        StandardAnalyzer analyzer = new StandardAnalyzer(Version.LUCENE_35);
        QueryParser q = new QueryParser(Version.LUCENE_35, "content", analyzer);
        Query query = q.parse(searchString);

        IndexReader reader = IndexReader.open(IndexWriterSingleton.getIndexWriter(), true);
        IndexSearcher is = new IndexSearcher(reader);
        // IndexSearcher is = new IndexSearcher(index, true);
        TopScoreDocCollector collector = TopScoreDocCollector.create(100, true);
        is.search(query, collector);
        hits = collector.topDocs().scoreDocs;

私の質問は:この行(この行だけ)は検索をほぼリアルタイムにしますか?

IndexReader reader = IndexReader.open(IndexWriterSingleton.getIndexWriter(), true);

私は単一のIndexWriterを維持しています(どこにも閉じていません)。

4

1 に答える 1

1

あなたの人生を難しくしないでください。NRTManagerクラスを使用して、これらすべてを処理します。

于 2012-07-30T02:13:15.110 に答える