电脑
浏览器
myeclipse、jdk
百度搜索luence进入官网下载。
点击下载luence压缩包。
引入luence必须的jar到你的web工程。
将其jar放入到项目的lib目录下,图中的index目录是luence定义的检索目录。
创建luence全文检索(复制如下代码到myeclipse中ctrl+shift+o,ctrl+shift+f 如果快捷键失灵一般是和输入法快捷键冲突),代码如下:@Test public void createIndex() throws Exception { // 索引存放位置 Directory directory = FSDirectory.open(new File('index/')); // 版本 Version version = Version.LUCENE_44; // 分词器 Analyzer analyzer = new StandardAnalyzer(version); // 索引配置 IndexWriterConfig indexWriterConfig = new IndexWriterConfig(version, analyzer); // 创建操作索引对象 IndexWriter indexWriter = new IndexWriter(directory, indexWriterConfig); // 创建document Document document = new Document(); IndexableField intField = new IntField('age', 123, Store.YES); IndexableField strField = new StringField('name', '张三', Store.YES); IndexableField txtField = new TextField('content', '张三是个教师!', Store.YES); document.add(intField); document.add(strField); document.add(txtField); indexWriter.addDocument(document); indexWriter.close(); }
从luence索引文件中检索数据,代码如下:@Test public void searchIndex() throws Exception { // 索引存放位置 Directory directory = FSDirectory.open(new File('index/')); IndexReader indexReader = DirectoryReader.open(directory); IndexSearcher indexSearcher = new IndexSearcher(indexReader); Query query = new TermQuery(new Term('content', '教')); TopDocs topDocs = indexSearcher.search(query, 10); int count = topDocs.totalHits; System.out.println('count:' + count); ScoreDoc[] scoreDocs = topDocs.scoreDocs; Document document = null; for (ScoreDoc scoreDoc : scoreDocs) { int docId = scoreDoc.doc; document = indexSearcher.doc(docId); String age = document.get('age'); String name = document.get('name'); String content = document.get('content'); System.out.println('age:' + age + ',name:' + name + ',content:' + content); } }
在运行完第一步创建之后在运行查询代码,显示如下结果。
由于小编电脑中已经有lucene-4.4.0,官网的版本比这个高很多因此代码可能存在差异需要修改。
由于luence包的结构和jdk中的存在相同的因此导入时注意导入luence包。