Lucene创建索引
来源:互联网 发布:三维立体动画制作软件 编辑:程序博客网 时间:2024/06/08 09:29
所有的代码都是基于maven管理的.
环境:
maven: 3.3.3
eclipse
jdk7, tomcat7, mac系统
pom.xml展示
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.zero.lucene</groupId> <artifactId>Lucene</artifactId> <version>0.0.1-SNAPSHOT</version> <dependencies> <dependency> <groupId>org.apache.lucene</groupId> <artifactId>lucene-core</artifactId> <version>5.1.0</version> </dependency> <dependency> <groupId>org.apache.lucene</groupId> <artifactId>lucene-queryparser</artifactId> <version>5.1.0</version> </dependency> <dependency> <groupId>org.apache.lucene</groupId> <artifactId>lucene-analyzers-common</artifactId> <version>5.1.0</version> </dependency> <!-- 中文分词 --> <dependency> <groupId>org.apache.lucene</groupId> <artifactId>lucene-analyzers-smartcn</artifactId> <version>5.1.0</version> </dependency> <!-- 关键词高亮 --> <dependency> <groupId>org.apache.lucene</groupId> <artifactId>lucene-highlighter</artifactId> <version>5.1.0</version> </dependency> </dependencies></project>
创建索引
package com.zero.lucene;import java.io.File;import java.io.FileNotFoundException;import java.io.FileReader;import java.io.IOException;import java.nio.file.Paths;import org.apache.lucene.analysis.Analyzer;import org.apache.lucene.analysis.standard.StandardAnalyzer;import org.apache.lucene.document.Document;import org.apache.lucene.document.Field.Store;import org.apache.lucene.document.TextField;import org.apache.lucene.index.IndexWriter;import org.apache.lucene.index.IndexWriterConfig;import org.apache.lucene.store.FSDirectory;/** * 建立索引 * @author samuel */public class Indexer { private IndexWriter writer; /** * 实例化写入索引的对象 * @param saveDir 索引写入的位置(建立好的索引存放的位置) * @throws Exception */ public Indexer(String saveDir) throws Exception{ FSDirectory fsdDir = FSDirectory.open(Paths.get(saveDir)); // 标准分词器 Analyzer analyzer = new StandardAnalyzer(); IndexWriterConfig conf = new IndexWriterConfig(analyzer); writer = new IndexWriter(fsdDir, conf); } /** * 关闭写入流 * @throws IOException */ public void close() throws IOException { writer.close(); } public void index(String dataDir) throws Exception { // 需要索引数据的目录 /** * 1. 查询到目录下所有的文件 * 2. 对每个文件进行建立索引 */// String dataDir = "/Users/samuel/Documents/lucene/lucene/"; // 1 File[] files = new File(dataDir).listFiles(); for (File file : files) { // 2 对每个文件进行索引 indexFile(file); } System.out.println(writer.numDocs()); writer.close(); } private void indexFile(File file) throws IOException { Document doc = getDcoument(file); writer.addDocument(doc); } private Document getDcoument(File file) throws FileNotFoundException { Document doc = new Document(); doc.add(new TextField("contents", new FileReader(file))); doc.add(new TextField("fileName", file.getName(), Store.YES)); return doc; } public static void main(String[] args) { String saveDir = "/Users/samuel/Documents/lucene"; String dataDir = "/Users/samuel/Documents/lucene/lucene"; Indexer indexer = null; try { indexer = new Indexer(saveDir); indexer.index(dataDir); } catch (Exception e) { e.printStackTrace(); }finally { try { indexer.close(); } catch (IOException e) { e.printStackTrace(); } } }}
一个原生态的Lucene创建索引就这样OK啦.
0 0
- lucene学习----创建索引
- lucene创建索引
- Java_ABC_3.Lucene创建索引
- Lucene 索引创建
- LUCENE创建索引【鸡蛋】
- Lucene 索引创建
- lucene--创建索引,搜索
- lucene创建索引
- Lucene 4.4 创建索引
- Lucene.Net创建索引
- lucene 索引创建查询
- Lucene 索引创建 .
- lucene创建索引
- lucene 创建索引
- Lucene之创建索引
- Lucene创建空索引
- Lucene-索引创建&搜索
- Lucene索引创建过程
- 解决Eclipse打开图片乱码问题
- Android Studio gradle 配置 keystore
- 交易明细(仿微信)
- 【python学习笔记】运算符和表达式
- antlr.collections.AST.getLine()I
- Lucene创建索引
- 算法训练 麦森数
- 【计算机网络】解决win10安装华为eNSP命令行界面(CLI)输出“###”终极办法!
- 自定义view刮刮卡效果
- java解决几种情况下的中文乱码问题
- 利用jsp+uploadify插件实现删除上传到ftp服务器里面的文件
- 杭电 2037 经典贪心
- 插入排序算法(C++实现)
- oracle小知识总结