lucene(一)lucene介绍

Lucene是apache软件基金会4 jakarta项目组的一个子项目,是一个开放源代码的全文检索引擎工具包,但它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部分文本分析引擎。

Lucene的jar下载

<dependency>
<groupId>org.apache.lucene</groupId>
<artifactId>lucene-core</artifactId>
<version>7.2.1</version>
</dependency>


<dependency>
<groupId>org.apache.lucene</groupId>
<artifactId>lucene-analyzers-common</artifactId>
<version>7.2.1</version>
</dependency>
<dependency>
<groupId>org.apache.lucene</groupId>
<artifactId>lucene-queryparser</artifactId>
<version>7.2.1</version>
</dependency>


<dependency>
<groupId>org.apache.lucene</groupId>
<artifactId>lucene-demo</artifactId>
<version>7.2.1</version>

</dependency>

Luke 查看lucene的图形界面 ,下载地址 https://github.com/DmitryKey/luke/releases (注意下载的版本要和lucene的版本一致

在cmd 窗口输入 点击luke.bat 或走 java -jar luke-with-deps.jar(luke-with-deps.jar的路径要对

Luke 导入索引


  关于Lucene的原理http://www.cnblogs.com/forfuture1978/archive/2009/12/14/1623594.html 这篇文章说的很好 可以便于理解


Lucene创建索引

Directory dir = FSDirectory.open(Paths.get("E:/lucenete"));//获取索引目录  事先创建索引文件夹
IndexWriterConfig config = new IndexWriterConfig(new IKAnalyzer());//这里用了中文解析器
config.setOpenMode(OpenMode.CREATE_OR_APPEND);

IndexWriter indexWriter = new IndexWriter(dir, config);

File[] files = new File("E:/lucenet").listFiles();//获取文件夹下所有的文件
for (File file : files) {
if (!file.isDirectory() && !file.isHidden() && file.exists() && file.canRead() ) {
System.out.println("indexing..." + file.getCanonicalPath());
             Document doc = new Document();
            BufferedReader reader = new BufferedReader(new InputStreamReader(  
                            new FileInputStream(file), "UTF-8")); //把text格式改为编码为utf-8 不然会乱码
           doc.add(new TextField("contents",reader.readLine() ,  Store.YES));
                          doc.add(new Field("filename", file.getName(), TextField.TYPE_STORED));
            doc.add(new Field("fullpath", file.getCanonicalPath(), TextField.TYPE_STORED));
                indexWriter.addDocument(doc);
}
}

  indexWriter.commit();//创建完要提交 不然没有数据
  indexWriter.close();

   

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值