2.Lucene基础知识

分词 analyzers

分词比较好理解,我们可以理解为把一个句子分成一个可能的词组成的数组。

比如:“为了保证用户不受到骚扰” 这个句子可能组成的数组为["为了","保证","用户","不受","到","骚扰"],这样的操作就是分词。

市场上已有现成的分词工具类,不用我们去写这个算法。

索引 index

Lucene 中最重要的对象,搜索就是基于它来操作的。

Lucene 的索引主要就是把我们需要搜索的内容进行分词,然后根据这些分词来建立索引文件。

Lucene 的索引就像我们mysql数据库中的一个数据对象一样。

Lucene 创建索引的步骤:

  • 指定一个存放索引的目录
  • 创建一个索引写入类,用于写入索引和数据对象到索引目录中
  • 创建存放数据的类型,指定是否需要存储、是否分词、是否建立索引等
  • 创建存放数据的文档,把数据按照类型存放进去
  • 把文档添加到到索引中
  • 保存索引和数据到索引目录

文档 document

文档表示我们的一条条的数据对象,主要负责存储数据。

索引最终也是指向这些文档的,因为我们最终目标就是找到这些数据。

搜索就是根据指定的语法去 Lucene 的索引中搜索数据的一个过程。

Lucene 搜索的步骤:

  • 获取搜索的关键字
  • 根据传入的字段和关键字进行组装搜索语法
  • 根据搜索语法到索引中查询得到索引指向的文档编号
  • 根据文档编号的信息查询出文档数据对象
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章