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

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

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

    Rising Sun

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

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

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

     

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

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

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

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

    Analyzer analyzer= new StandardAnalyzer(Version.LUCENE_45);

    //設(shè)置索引寫入配置

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

    //設(shè)置創(chuàng)建模式

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

    IndexWriter indexwriter= new IndexWriter(d,config);

     

        上面四行代碼就創(chuàng)建好了indexwriter下面把數(shù)據(jù)填入就好了,寫入有多種方式如下圖:


             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)); 

    //寫入數(shù)據(jù)

    indexwriter.addDocument(doc);

    //提交

    indexwriter.commit();

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


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

     //讀數(shù)據(jù)

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

     IndexReader indexReader = DirectoryReader.open(d);

     IndexSearcher indexSearcher = new IndexSearcher(indexReader);

    //查詢 設(shè)置分詞字段

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

                       new StandardAnalyzer(Version.LUCENE_45));

     //or 關(guān)系 “給”、“分”

             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

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


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 久青草视频在线观看免费| 国产成人综合久久精品亚洲| 亚洲免费观看在线视频| 在线观看亚洲AV日韩A∨| 国产精品亚洲一区二区三区| 中文字幕永久免费视频| 免费A级毛片av无码| 免费黄色网址入口| 国产AV无码专区亚洲AV手机麻豆| 亚洲s色大片在线观看| 中文字幕亚洲综合小综合在线| 黄色毛片视频免费| 国内精品免费在线观看| 日韩精品福利片午夜免费观着| 亚洲国产日韩成人综合天堂 | 亚洲无线观看国产精品| 中文字幕亚洲精品资源网| 亚洲av午夜电影在线观看| 中文字幕在线视频免费观看| 日本黄网站动漫视频免费| 免费一区二区三区四区五区| 久久亚洲国产成人亚| 亚洲欧美成人一区二区三区| 中文字幕乱理片免费完整的| 青娱乐免费视频在线观看| 亚洲色偷偷狠狠综合网| 亚洲精品白色在线发布| 美女被免费网站在线视频免费| 久久精品免费视频观看| 国产高清在线免费视频| 亚洲欧洲日韩不卡| 免费无码AV一区二区| 最近2019中文字幕免费直播| 免费人成网站7777视频| 亚洲福利视频网址| 一级做a毛片免费视频| 久久综合AV免费观看| 亚洲av无码一区二区三区网站| 亚洲AV无码专区国产乱码不卡| 性无码免费一区二区三区在线| 免费在线观看污网站|