基于Lucene的博客搜索系统

本文介绍了如何基于Apache Lucene实现一个简单的博客搜索系统。首先,概述了Lucene作为一个高性能的全文搜索引擎库,并强调其开源性质。接着,通过学习官方API和示例,创建了一个Lucene工具类,用于建立索引和执行搜索。文章还提到了分词器在全文检索中的重要性,列举了几种常见的中文分词器。最后,讨论了Lucene的工作原理,涉及IndexWriter和IndexSearcher两个关键对象。
摘要由CSDN通过智能技术生成

最近看了一下Lucene,所以决定自己实现一个简单的博客搜索系统,大体如下:
在这里插入图片描述

首先,我们先来了解一下Lucene,官网:http://lucene.apache.org/core/
打开一看,全篇英文,一脸懵逼,小编我立刻后悔当初没有好好学习英语了,但我还是硬着头皮慢慢看,大概理解了一下:

Apache Lucene是一个完全用Java编写的高性能,功能齐全的文本搜索引擎库。它是一种适用于几乎所有需要全文搜索的应用程序的技术,尤其是跨平台搜索,最重要的是它是一个可供免费下载的开源项目(开源什么的最喜欢了,哈哈。。。),个人感觉,它就是一个用于全文检索的工具包。

学一门东西,首先先学会用,然后去了解原理(纯属个人观点),其实官方提供了详细的API:
在这里插入图片描述

打开核心包可以看到官方给的demo,大致了解了用法:在这里插入图片描述

OK,话不多说,上代码,首先我们需要引入依赖:

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

	 <dependency>
	     <groupId>org.apache.lucene</groupId>
	     <artifactId>lucene-queryparser</artifactId>
	     <version>7.1.0</version>
	 </dependency>

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

这里先创建一个Lucene的工具类,用来创建索引和执行搜索功能(这里的文件类型为txt,具体文件具体分析):

public class LuceneUtil {

    private static IndexWriter indexWriter;
    private static IndexWriterConfig indexWriterConfig;
    private static FSDirectory fsDirectory;
    private static Analyzer analyzer;
    private static final String DIR = "/luceneIndex";


    //为文件创建索引
    public static void createIndex(File file,String title){

        String name = file.getName();
        //针对txt文件进行索引创建
        if(name.endsWith(".txt")){
            String content = txtToString(file);
            String id = name.substring(0,name.lastIndexOf("."));

            Document document = new Document();
            document.add(new StringField("id",id, Field.Store.YES));
            document.add(new StringField("title",title, Field.
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值