1. 程式人生 > >通過NRTManager和SearchManager實現近實時搜尋

通過NRTManager和SearchManager實現近實時搜尋

    public void update() {
        try {
            /*
             * Lucene並沒有提供更新,這裡的更新操作其實是如下兩個操作的合集
             * 先刪除之後再新增
             */
            Document doc = new Document();
            doc.add(new Field("id","11",Field.Store.YES,Field.Index.NOT_ANALYZED_NO_NORMS));
            doc.add(new Field("email",emails[0],Field.Store.YES,Field.Index.NOT_ANALYZED));
            doc.add(new Field("content",contents[0],Field.Store.NO,Field.Index.ANALYZED));
            doc.add(new Field("name",names[0],Field.Store.YES,Field.Index.NOT_ANALYZED_NO_NORMS));
            nrtMgr.updateDocument
(new Term("id","1"), doc);
        } catch (CorruptIndexException e) {
            e.printStackTrace();
        } catch (LockObtainFailedException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }