多语言展示
当前在线:1957今日阅读:2今日分享:31

lucene入门教程

lucene是一个全文检索项目,具体请百科,本文主要从代码角度给大家入门提供参考。
工具/原料
1

电脑

2

浏览器

3

myeclipse、jdk

方法/步骤
1

百度搜索luence进入官网下载。

2

点击下载luence压缩包。

3

引入luence必须的jar到你的web工程。

4

将其jar放入到项目的lib目录下,图中的index目录是luence定义的检索目录。

5

创建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();    }

6

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

7

在运行完第一步创建之后在运行查询代码,显示如下结果。

注意事项
1

由于小编电脑中已经有lucene-4.4.0,官网的版本比这个高很多因此代码可能存在差异需要修改。

2

由于luence包的结构和jdk中的存在相同的因此导入时注意导入luence包。

推荐信息