ssm学习——Lucene建立索引

一:理论知识

  1.非结构化数据查询方法

    1)顺序扫描法

      太慢,效率不高。

    2)全文检索法

      对需要查询的文档创建索引,再对其进行搜索。其实说白了就是为了使其结构化。

  2.索引创建和搜索流程图

    1)流程图

      

    2)索引库

      索引库是由两部分组成的,一部分是索引,另一部分是文档对象(不是原始文档)。

  3.流程图详解

    1)创建文档对象

      有以下规则

        a.不同的文档可以有不同的Field

        b.同一个文档可以有相同的Field

        c.每一个文档有一个唯一的编号id

    2)分析文档

      分析的过程是经过对原始文档提取单词,将字母转换成小写,去除标点符号等过程最终生成语汇单元(一个一个的单词)。

      注意:不同的域中生成的term是不同的term。

      term好像是索引的基本单位,term包含文档域名和单词内容。例如一个文档的文件名包含java是不同于内容中包含java的。这是通过term来实现的。

    3)创建索引

      为每一个term,指向所在的文档对象。Lucene是倒排索引,是先找到这个term再找到这个文档,这种方法比顺序查找效率高。

二:实例

  1.准备工作

    1)创建java工程

    2)导包

      lucene-core-4.10.3.jar

      lucene-analyzer-common-4.10.3.jar

      lucene-queryparser-4.10.3.jar

      common-io-2.4.jar

  2.实现步骤

    1)实现步骤

      1.创建一个IndexWriter对象

        指定索引库存放位置

        指定一个分析器

      2.创建document对象

      3.创建field对象

      4.使用IndexWriter对象进行索引创建

      4.关闭IndexWriter对象

    2)代码

  3.Field的一些说明

    1)Field域有几大实现类,选择依据:

      是否分析:是否对域的内容进行分词处理。是否要对域的内容进行查询

      是否索引:无论是否分析,但是索引要搜索到。有一些不分析,但是也要进行索引。

      是否存储:将Field值存储在文档对象中,凡是将来要从Document中获取的Field都要存储。

    2)Field的子类

      

    3)使用工具查看建立的索引库

      Luke - Lucene Index Toolbox

     

注意事项:Lucene不提供信息采集的类库,需要其它库支持。(Nutch,jsoup,heritrix)

原文地址:https://www.cnblogs.com/Dbbf/p/9901105.html

时间: 2024-08-07 21:16:44

ssm学习——Lucene建立索引的相关文章

【转】Lucene不同版本中Field的Keyword、UnIndex,导致lucene 建立索引总是报错 急!!

lucene 建立索引 总是报错 急!! http://zhidao.baidu.com/link?url=iaVs9JH4DfN6iwaWImt7VMJENWCWGGaWFGPjqhUw_jz7FsbdrUiAJwptgCNDR8OhWlJ8iUArECkLnpBQGGzTxq 这段话总是报错,编译不过去.红线画在keyword,text下面.while(rs.next()){ Document doc=new Document(); doc.add(Field.Keyword("BH&quo

Lucene建立索引然后搜索的小Demo

package junitTest; import java.io.IOException; import java.io.StringReader; import org.apache.lucene.analysis.Analyzer; import org.apache.lucene.analysis.TokenStream; import org.apache.lucene.analysis.standard.StandardAnalyzer; import org.apache.luce

Lucene4.9学习笔记——Lucene建立索引

基本上创建索引需要三个步骤: 1.创建索引库IndexWriter对象 2.根据文件创建文档Document 3.向索引库中写入文档内容 这其中主要涉及到了IndexWriter(索引的核心组件,用于创建或追加索引).Document(代表一些域Field的集合).Field(具体的域,如文档创建时间.作者.内容等).Analyzer(分词器).Directory(用于描述索引存放位置)这些主要的类. 我们参照上一节的代码来看建立索引. 1.创建IndexWriter // 索引文件的保存位置

lucene 建立索引的过程

时间 2014-06-30 17:56:52 ? CSDN博客 原文 http://blog.csdn.net/caohaicheng/article/details/35992149 看lucene主页(http://lucene.apache.org/)上目前lucene已经到4.9.0版本了, 参考学习的书是按照2.1版本讲解的,写的代码例子是用的3.0.2版本的,版本 的不同导致有些方 法的 使用差异,但是大体还是相同的. 源代码用到的jar包(3.0.2版本)下载地址 参考资料: 1.

lucene 建立索引与查询

Lucene 简介 Lucene 是一个基于 Java 的全文信息检索工具包,它不是一个完整的搜索应用程序,而是为你的应用程序提供索引和搜索功能.Lucene 目前是 Apache Jakarta 家族中的一个开源项目.也是目前最为流行的基于 Java 开源全文检索工具包. 目前已经有很多应用程序的搜索功能是基于 Lucene 的,比如 Eclipse 的帮助系统的搜索功能.Lucene 能够为文本类型的数据建立索引,所以你只要能把你要索引的数据格式转化的文本的,Lucene 就能对你的文档进行

Lucene建立索引库

问题?Lucene如何建立索引库,lucene所需要的jar包是那些  , lucene如何使用索引库,lucene的核心原理 一.Lucene是什么? 全文检索只是一个概念,而具体实现有很多框架,lucene是其中的一种方式.本文将以lucene3.0进行开发 官兵与Luncne的jar包可以去官网下载:点击打开链接,不过好像Lucene已经更新到6.1了. 二.建立索引库 1.互联网搜索全文搜索引擎结构图: 2.Lucene的结构图: 说明: (1)在数据库中,数据库中的数据文件存储在磁盘上

lucene建立索引的过程

建立索引过程 用户提交数据=>solr建立索引=>调用lucene包建立索引 官方建立索引和查询索引的例子如下: http://lucene.apache.org/core/4_10_3/demo/overview-summary.html#About_the_code http://lucene.apache.org/core/4_10_3/core/overview-summary.html#overview_description 其他参考文章如下: http://dataknocker

lucene 建立索引的不同方式

1.创建一个简单的索引: package lia.meetlucene; import java.io.File; import org.apache.lucene.document.Document; import org.apache.lucene.document.Field; import org.apache.lucene.index.IndexWriter; import org.apache.lucene.store.Directory; import org.apache.luc

html抽取文本信息-java版(适合lucene建立索引)

import org.htmlparser.NodeFilter; import org.htmlparser.Parser; import org.htmlparser.beans.StringBean; import org.htmlparser.filters.CssSelectorNodeFilter; import org.htmlparser.util.NodeList; public class HtmlUtil { public static String getText(Str