资讯   |   开发   |   选机中心   |   产品大全 | IBM | 惠普 | 联想 | 戴尔 | 苹果 | 神舟
更多: | 华硕 | 明基 | 方正 | 紫光 | TCL | 夏新 | 联宝 | 宏碁 | 七喜 | 长城 | 清华同方 | 海尔 | 三星 | 东芝 | 索尼 | 富士通 | LG | 技术 | ddnoon
当前位置:笔记本 > 编程开发 >
Advertisement
文章正文

基于Lucene的Mp3检索器 _编程

类型:转载   责任编辑:asp.net   日期:2007/05/23


热门软件下载:


   
  • 21.3 用Ant来打包  
  • <<Eclipse开发指南>>的最终目录  
  • MyEclipse 下开发JSF教程  
  • 随机数的困惑(java.util.Random/Math.Random()  
  • WorkbenchAdvisor中的方法执行顺序  
  • Struts 的安装、配置与运行  
  • JDK1.5 最新特性  
  • 配置 Tomcat 的网站根目录、虚拟目录、端口等  
  • 彻底解决Tomcat 5.0.19中文乱码  
  • 深入探索SOAP1.1--使用SAAJ1.2.1  
  • 页面导航:

    正文内容:

    [原创]基于apache lucene的mp3搜索器
    前些日子找机器上的一首老歌时,费了些周折,后想到既然这些mp3有自己的标签信息,为何不利用起来呢?笔者就尝试用lucene实现,分两部分,mp3indexer.java是创建索引的,mp3search.jsp是搜索mp3的页面。
    下面是mp3indexer.java的代码。
    package mp3indexer;
    import java.io.*;
    import java.text.*;
    import java.util.*;

    import org.apache.lucene.analysis.cjk.*;
    import org.apache.lucene.document.*;
    import org.apache.lucene.index.*;

    public class mp3indexer
    {
     public final static string mp3path="d:\\mp3";//mp3所在目录
     public final static string indexpath="c:\\mp3indexer";//索引存放目录
     public static void main(string[] args) throws classnotfoundexception, ioexception{
     try {
     indexwriter writer = new indexwriter(indexpath, new cjkanalyzer(), true);
     indexmp3s(writer, new file(mp3path));

     system.out.println("优化中....");
     writer.optimize();
     writer.close();

     } catch (exception e) {
     system.out.println(e.getmessage());
     }
    }

    public static void indexmp3s(indexwriter writer, file file) throws exception {
     if (file.isdirectory()) {
     string[] files = file.list();
     for (int i = 0; i < files.length; i++) {
     indexmp3s(writer, new file(file, files[i]));
     }
     }
     else if (file.getpath().endswith(".mp3")) { //只对 mp3 文件做索引
     system.out.print("正在处理文件:" + file + " ....");
     // add mp3 file ....
     document doc = new document();
     doc.add(field.text("name", file.getname())); //索引文件名
     doc.add(field.unindexed("modified", dateformat.getdatetimeinstance().format(new date(file.lastmodified())))); //索引最后修改时间
     doc.add(field.text("size",""+numberformat.getnumberinstance().format(file.length()/1048576.0)+"mb")); //索引最后修改时间

     filereader freader = new filereader(file);
     java.io.randomaccessfile r=new randomaccessfile(file,"r");
     r.seek(file.length()-128);
     byte[] bt=new byte[127];
     r.read(bt);
     string labelinfo=new string(bt,"gb2312");
     system.out.println(labelinfo);

     if (labelinfo.startswith("tag")) {
     doc.add(field.text("comment", labelinfo));
     }
     system.out.println("[处理完成]");

     r.close();
     freader.close();
     writer.adddocument(doc);
     } //end else if
    }

    } //end class


     



     

     
    热门推荐笔记本: IBM笔记本
    相关文章:
    webmaster:popbb@126.com   最佳浏览:1024X768 MSIE
    ©2007 popbb.net All Rights Reserved