lucene可以放到android中使用吗?如果需要修改lucene源码,要怎么改呢?我用lucene写了一个放在android平板上的搜索器,可是不报错,但也不运行,这是怎么回事?有谁会改吗?package android.search;import java.io.File;    import java.io.FileReader;import java.io.IOException;import org.apache.lucene.analysis.standard.StandardAnalyzer;import org.apache.lucene.document.Document;import org.apache.lucene.document.Field;import org.apache.lucene.index.CorruptIndexException;import org.apache.lucene.index.IndexReader;import org.apache.lucene.index.IndexWriter;import org.apache.lucene.index.IndexWriterConfig;import org.apache.lucene.queryParser.ParseException;import org.apache.lucene.queryParser.QueryParser;import org.apache.lucene.search.IndexSearcher;import org.apache.lucene.search.Query;import org.apache.lucene.search.ScoreDoc;import org.apache.lucene.search.TopDocs;import org.apache.lucene.store.Directory;import org.apache.lucene.store.FSDirectory;import org.apache.lucene.store.LockObtainFailedException;import org.apache.lucene.util.Version;    import android.app.Activity;    import android.os.Bundle;    import android.os.Environment;  import android.util.Log;  import android.view.View;    import android.view.View.OnClickListener;    import android.widget.Button;    import android.widget.EditText;    import android.widget.TextView;    import android.widget.Toast;    // extends Activtiy     //implements OnClickListener 实现click方法    public class AndroidsearchActivity extends Activity implements OnClickListener {        /** Called when the activity is first created. */                private File file;  //文件对象      private String path;  //路径      private String info;  //目标文件所在路径      private String key; //关键字        private TextView result; // 显示结果        private EditText et; // 编辑view        private Button search_btn; // button view                @Override        public void onCreate(Bundle savedInstanceState) {            super.onCreate(savedInstanceState);  //创建程序          setContentView(R.layout.main);  //导入main。xml                      result = (TextView)findViewById(R.id.TextView_Result);  //结果          et = (EditText)findViewById(R.id.key);  //关键词          search_btn = (Button)findViewById(R.id.button_search); // 按键          //file = new File(Environment.getExternalStorageDirectory().getPath());           // file = new File("/mnt/");  //确定搜索的路径          info = getString(R.string.info);  //将String.xml中的“目标文件所在路径”这就话传给info          search_btn.setOnClickListener(this);//设置监听        }            /* (non-Javadoc)       * @see android.view.View.OnClickListener#onClick(android.view.View)       */        public void onClick(View v) { //点击按钮此程序运行                 // TODO Auto-generated method stub        StringBuffer sb = new StringBuffer();        path = "";         //path付初值为空          result.setText("");  //将结果显示设为空白               key = et.getText().toString();  //将从文本框中得到的文件名转换为String型              index();  //运行BrowserFile方法          search(sb);        result.setText(sb);    }        public void index(){IndexWriter indexwriter = null;Directory directory;try {directory = FSDirectory.open(new File("/mnt/sdcard/kankan/"));//将索引创建在平板电脑的/mnt/sdcard/kankan/目录下IndexWriterConfig iwc = new IndexWriterConfig(Version.LUCENE_35,new StandardAnalyzer(Version.LUCENE_35));indexwriter = new IndexWriter(directory,iwc);Document document = null;File file = new File("/mnt/sdcard/kankan/");//确定搜索路径for(File files:file.listFiles()){document=new Document();document.add(new Field("content",new FileReader(file)));document.add(new Field("file",files.getName(),Field.Store.YES,Field.Index.ANALYZED));document.add(new Field("path",files.getPath(),Field.Store.YES,Field.Index.ANALYZED));if(indexwriter!=null)indexwriter.close();}} catch (IOException e2) {// TODO Auto-generated catch blocke2.printStackTrace();}}public StringBuffer search(StringBuffer sb){Directory directory;try {directory = FSDirectory.open(new File("/mnt/sdcard/kankan/"));//打开索引IndexReader indexreader;indexreader = IndexReader.open(directory);IndexSearcher indexsearcher = new IndexSearcher(indexreader);QueryParser queryparser = new QueryParser(Version.LUCENE_35,"content",new StandardAnalyzer(Version.LUCENE_35));Query query;query = queryparser.parse("ads");TopDocs tds;tds = indexsearcher.search(query, 20);ScoreDoc[] sds= tds.scoreDocs;for(ScoreDoc sd:sds){Document d;d = indexsearcher.doc(sd.doc);sb.append(d.get("filename")+"["+d.get("path")+"]");}indexreader.close();} catch (IOException e4) {// TODO Auto-generated catch blocke4.printStackTrace();} catch (ParseException e) {// TODO Auto-generated catch blocke.printStackTrace();}return sb;}}  

更多相关文章

  1. Android文件系统的结构及目录用途、操作方法 整理
  2. Android NDK开发之Android.mk文件
  3. Android studio 3.1.4 无法获取pom文件
  4. Android Eclipse JNI 调用 .so文件加载
  5. Android 保存文件路径
  6. 在Windows系统中使用NDK编译Android二进制文件并运行
  7. FileProvider 路径配置策略的理解
  8. 【Android 系统开发】 编译 Android文件系统 u-boot 内核 并烧写
  9. android 获取路径目录方法以及判断目录是否存在,创建目录

随机推荐

  1. 建站学习(PHP+apache+mysql):1.1 日志详解
  2. 30、PHP7和PHP5有什么区别?
  3. php file_get_content阿拉伯字符
  4. [php入门] 1、从安装开发环境环境到(庄B)做
  5. Laravel 5验证日期为php Y格式。g 2015 ?
  6. php-fpm通过request_slowlog_timeout检查
  7. 有没有办法在php关闭标签后强制换行?>什么
  8. 让Tomcat运行PHP的几种方式
  9. php对象的实现
  10. 为什么只有ASP.NET有异步编程模型?