<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Rising Sun

      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
      148 隨筆 :: 0 文章 :: 22 評論 :: 0 Trackbacks

    在學lucene 之初看了許多書,都是走馬觀花,沒有項目的驅動下,來一個用例demo感覺也不是很難,“我會了”這是我的第一感覺。

             2013年底公司接到一個項目用到lucene,這是我第一次正真接觸Lucene,代碼比較老3.6版本,不適合新項目的需求(空間查詢)。于是下載了最新版本 4.51,有帶“空間查詢”模塊。各大搜索引擎都沒有找到像樣例子,于是想到了lucene svn trunk目錄測試用例中找到了測試例子,開始了一段lucene之旅。

     

    寫數據,創建IndexWriter,通過它的構造函數需要一個索引目錄(Diectory)和索引寫入配置項(InderWriterConfig,直接上代碼:

    //設置寫入目錄(好幾種呵呵)

    Directory d=FSDirectory.open(new File("D:/luceneTest"));

    //設置分詞 StandardAnalyzer(會把句子中的字單個分詞)

    Analyzer analyzer= new StandardAnalyzer(Version.LUCENE_45);

    //設置索引寫入配置

    IndexWriterConfig config=new IndexWriterConfig(Version.LUCENE_45,analyzer);

    //設置創建模式

    //config.setOpenMode(IndexWriterConfig.OpenMode.CREATE_OR_APPEND);

    IndexWriter indexwriter= new IndexWriter(d,config);

     

        上面四行代碼就創建好了indexwriter,下面把數據填入就好了,寫入有多種方式如下圖:


             addDocment 舉例代碼如下:

    Document doc=new Document(); 

            doc.add(new StringField("id", "1", Store.YES));

            doc.add(new StringField("name", "brockhong", Store.YES));

            doc.add(new TextField("content", "lucene 文檔第一次寫看著給分吧", Store.YES)); 

    //寫入數據

    indexwriter.addDocument(doc);

    //提交

    indexwriter.commit();

    Luke 工具查看Text列,這是標準分詞惹的禍哦!寫入成功。


             讀數據查詢,創建 IndexSearcher 構造函數設置indexReader ,輸入查詢條件,上面content字段數據設置了分詞,所以必須通過查詢解析類QueryParser設定分詞字段、版本、分詞模式,并通過parse方法得到查詢條件。代碼如下:       

     //讀數據

     //創建 indexReader 這個已過時 IndexReader.open(d),里面的代碼一樣可能為了兼容老版本

     IndexReader indexReader = DirectoryReader.open(d);

     IndexSearcher indexSearcher = new IndexSearcher(indexReader);

    //查詢 設置分詞字段

    QueryParser queryParser = new QueryParser(Version.LUCENE_45, "content",

                       new StandardAnalyzer(Version.LUCENE_45));

     //or 關系 “給”、“分”

             queryParser.setDefaultOperator(QueryParser.OR_OPERATOR);

    Query query = queryParser.parse("給分");

     

    TopDocs results = indexSearcher.search(query, 100);

    int numTotalHits = results.totalHits;

    System.out.println(" " + numTotalHits + " 完全匹配的文檔");

    ScoreDoc[] hits = results.scoreDocs;

    for (int i = 0; i < hits.length; i++) {

                  Document document = indexSearcher.doc(hits[i].doc);

                  System.out.println("content:" + document.get("content"));

    }


    pasting
    posted on 2014-12-31 17:07 brock 閱讀(332) 評論(0)  編輯  收藏 所屬分類: Lucene

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 爱情岛论坛亚洲品质自拍视频网站| 乱淫片免费影院观看| 久久精品国产亚洲av品善| 皇色在线视频免费网站| 456亚洲人成在线播放网站| 日本中文字幕免费看| 伊在人亚洲香蕉精品区麻豆| 国产亚洲人成在线影院| 少妇亚洲免费精品| 一本岛v免费不卡一二三区| 久久夜色精品国产亚洲av| 中文在线日本免费永久18近| 伊伊人成亚洲综合人网7777| 久草免费福利视频| 免费va人成视频网站全| 一级毛片在线完整免费观看| 国产性爱在线观看亚洲黄色一级片| 中文字幕在线免费播放| 亚洲Aⅴ无码专区在线观看q| 国产成人综合亚洲绿色| 亚洲裸男gv网站| 久久久久久AV无码免费网站| 精品亚洲成在人线AV无码| 蜜桃精品免费久久久久影院| 亚洲免费视频在线观看| 免费阿v网站在线观看g| 在线精品自拍亚洲第一区| 亚洲线精品一区二区三区 | 免费一级毛片免费播放| 好男人资源在线WWW免费| 91亚洲国产成人精品下载| 国产免费AV片在线观看播放| 国产又黄又爽又刺激的免费网址| 久久er国产精品免费观看8| 亚洲精品免费在线视频| 精品无码无人网站免费视频| 亚洲精品国产精品乱码在线观看| 免费A级毛片无码A∨| 亚洲AV无码片一区二区三区| 久久亚洲精品视频| 97无码免费人妻超级碰碰夜夜|