`
liuzm
  • 浏览: 100986 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

lucene 入门学习,简单实例模访google搜索

阅读更多
前面一篇文章的介绍是简单的了解lucene 的语法 知道所以然,所以检索内容是自己建的.这篇可以动态

的增加建索引的内容,如果到时信息来源在数据库,就可以直接读数据库的信息 然后建索引了

这样可以更深的了解lucene搜索.换了一种方法.多一种方法多一种思想.因为这种方法更实际
public static void main(String[] args) throws CorruptIndexException,
            LockObtainFailedException, IOException {

        String content = "学JAVA到刘志猛博客"; // 定义要建索引的内容
        String sql = "刘志猛"; // 要搜索的关键字
        Hits hits = null; //Hits类――检索结果
        Query query = null;
        // RAMDirectory directory = new RAMDirectory();
        IndexWriter writer = new IndexWriter("c:\\indexM",
                new StandardAnalyzer(), true);// 这要注意思下
        // new StandardAnalyzer() 是标准过虑,new WhitespaceAnalyzer() 是空格过虑
        // 如果用new WhitespaceAnalyzer() 就是把content="刘志猛 中华 人民国" 按空格来检索了
        // 这方面主知识可以 查 分析器Analysis相关内容

        Document doc = new Document();
        doc.add(new Field("field", content, Field.Store.YES,
                Field.Index.ANALYZED));
        writer.addDocument(doc);
        writer.close();

        // 建索引end

        // 查询
        IndexSearcher searcher = new IndexSearcher("c:\\indexM");

        QueryParser parser = new QueryParser("field", new StandardAnalyzer());
        try {
            query = parser.parse(sql);

            hits = searcher.search(query);
            for (int i = 0; i < hits.length(); i++) {
                if (hits.length() > 0) {
                    Document document = hits.doc(i);
                    System.out.println("内容:" + document.get("field"));
                    String str = document.get("field");
                    str = str.replaceAll(sql, "#" + sql + "#");// 在这我把关键字做了一个替换.这种方法可以模仿google
                                                                // 关键字变红 在这我有#替换了 如果是html页面,可以用html语言替换
                    System.out.println(str);
                } else {
                    System.out.println("没有查到结!");
                }
            }
        } catch (ParseException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

    }

官方链接:http://www.liuzm.com/article/java/9114a.htm
官方博客:http://www.liuzm.com
分享到:
评论
4 楼 liuzm 2010-05-31  
smallsnake 写道
qyhdt 写道
    不知道lz对lucene理解达到什么层次了,有想过用lucene做中间存储器插件么,换句话说当一个数据库的某个表有千万条记录,然后查出列表时候需要有多表关联,这样在查询时候异常的慢,用lucene做一个临时中间存储器同步数据库数据,这样查找时候会很快,我一直有这个想法写一个这样功能的lucene插件,不知道lz对这个有何见解,可行还是不可行呢。

在企业级的开发中,搜索引擎一般是做成一个公共的组件,我个人觉得你说的是使用缓存策略,是不?


恩,一般在项目中都是做成公共的组件.
3 楼 smallsnake 2010-05-30  
qyhdt 写道
    不知道lz对lucene理解达到什么层次了,有想过用lucene做中间存储器插件么,换句话说当一个数据库的某个表有千万条记录,然后查出列表时候需要有多表关联,这样在查询时候异常的慢,用lucene做一个临时中间存储器同步数据库数据,这样查找时候会很快,我一直有这个想法写一个这样功能的lucene插件,不知道lz对这个有何见解,可行还是不可行呢。

在企业级的开发中,搜索引擎一般是做成一个公共的组件,我个人觉得你说的是使用缓存策略,是不?
2 楼 qyhdt 2010-05-29  
    不知道lz对lucene理解达到什么层次了,有想过用lucene做中间存储器插件么,换句话说当一个数据库的某个表有千万条记录,然后查出列表时候需要有多表关联,这样在查询时候异常的慢,用lucene做一个临时中间存储器同步数据库数据,这样查找时候会很快,我一直有这个想法写一个这样功能的lucene插件,不知道lz对这个有何见解,可行还是不可行呢。
1 楼 flootball 2010-05-29  
想去答题啊?

相关推荐

    Lucene入门与使用

    Lucene入门与使用,非常简单,适合入门

    lucene全文搜素实例 java lucene 实例

    **Lucene 全文搜索引擎实例:Java Lucene 实例** Lucene 是 Apache 软件基金会的一个开源项目,它提供了一个高性能、可扩展的信息检索库。这个实例将深入讲解如何在 Java 中使用 Lucene 来创建索引并执行各种搜索...

    Lucene入门学习文档

    **Lucene入门学习文档** **一、什么是Lucene** Lucene是Apache软件基金会下的一个开源全文检索库,它提供了一个高性能、可扩展的信息检索服务。Lucene最初由Doug Cutting开发,现在已经成为Java社区中事实上的标准...

    lucene实现企业搜索实例

    **Lucene实现企业搜索实例** 在企业环境中,高效、精准的搜索能力是至关重要的,它可以帮助员工快速定位信息,提高工作效率。Apache Lucene是一个开源的全文检索库,它提供了强大的文本搜索功能,能够帮助企业构建...

    lucene 3.0 入门实例

    **Lucene 3.0 入门实例** Lucene 是一个高性能、全文本搜索库,由 Apache 软件基金会开发。它提供了完整的搜索功能,包括索引、查询解析、排序以及高级的文本分析能力。在 Lucene 3.0 版本中,开发者可以利用其强大...

    Lucene使用代码实例之搜索文档

    《Lucene使用代码实例之搜索文档》 Lucene是一个高性能、全文检索库,它提供了强大的文本分析和索引功能,广泛应用于搜索引擎开发和其他需要高效文本处理的场景。本篇文章主要面向初学者,通过实例详细解释如何使用...

    lucene4.7 开发简单实例

    《Lucene 4.7 开发简单实例详解》 Lucene 是一款强大的全文搜索引擎库,广泛应用于各种信息检索系统中。在本实例中,我们将深入探讨Lucene 4.7版本,涵盖索引的创建、修改、删除,以及查询时的排序、分页、优化和...

    lucene3.6入门实例教程

    《Lucene 3.6 入门实例教程》是一份专...总之,《Lucene 3.6 入门实例教程》是学习Lucene的理想资源,它将理论知识与实践操作紧密结合,使开发者能够快速掌握全文检索技术,为构建高效、精准的搜索应用打下坚实的基础。

    lucene 入门

    `lucene入门小实例.txt` 文件中可能包含了一个简单的Lucene使用示例,例如: 1. 创建 `Directory` 对象,比如使用 `FSDirectory.open()` 打开一个文件系统的目录来存储索引。 2. 实例化 `Analyzer`,如使用 `...

    基于java的Lucene全文搜索引擎资源简单实例下载

    **基于Java的Lucene全文搜索引擎资源简单实例** Lucene是一个由Apache软件基金会开发的开源全文检索库,它为Java开发者提供了强大的文本搜索功能。Lucene是高性能、可扩展的信息检索库,可以集成到各种Java应用中,...

    最新全文检索 lucene-5.2.1 入门经典实例

    《最新全文检索 Lucene-5.2.1 入门经典实例》 Lucene是一个开源的全文检索库,由Apache软件基金会开发,广泛应用于各种信息检索系统。在5.2.1版本中,Lucene提供了更为高效和强大的搜索功能,为开发者提供了构建...

    Lucene学习笔记(一)Lucene入门实例

    NULL 博文链接:https://kylinsoong.iteye.com/blog/719415

    Lucene索引器实例

    以上就是Lucene索引器实例的基本介绍,通过这个实例,我们可以理解到如何使用Lucene来创建、管理和搜索文本索引。在实际项目中,可以根据需求选择合适的存储(如硬盘目录或分布式存储)、优化分析器配置、处理大量...

    lucene实例lucene实例

    5. 查询(Query):用户提交的搜索条件,可以是简单的关键词,也可以是复杂的查询语法。 二、Lucene实例操作流程 1. 创建索引(Indexing):首先,我们需要创建一个索引Writer,然后添加文档到索引中。每个文档...

    Lucene3.0入门实例含jar包

    **Lucene 3.0 入门实例及关键知识点** ...总之,Lucene 3.0 入门实例提供了理解全文搜索引擎工作原理的基础,通过实践,开发者能够熟练掌握如何在自己的应用程序中集成和利用 Lucene 实现高效、精准的文本搜索功能。

    Lucene 的入门 实例 代码

    【Lucene 入门教程】 Lucene 是一个由Apache软件基金会开发的开源全文检索引擎工具包,它并非一个完整的搜索引擎,而是提供了一个强大的架构,允许开发人员轻松地在他们的应用程序中集成全文检索功能。Lucene 支持...

    lucene3.6的入门案例

    在这个入门案例中,我们将深入理解如何使用 Lucene 3.6 版本来构建基本的文本搜索引擎。 首先,我们需要了解 Lucene 的核心概念: 1. **索引(Indexing)**:Lucene 的工作始于创建索引,将文档内容转化为可搜索的...

    Lucene简单实例记录

    ### Lucene的入门实例 #### 建立索引 1. **包导入**:首先,需要导入Lucene相关的包,包括`java.io`用于文件操作,`org.apache.lucene.analysis`用于文本分析,`org.apache.lucene.document`用于创建文档对象,...

    Lucene搜索实例

    通过这个 Lucene 搜索实例,我们可以学习到如何在实际项目中利用 Lucene 实现高效的全文检索,理解其核心机制,以及如何根据具体需求进行定制和优化。无论是小型项目还是大型企业级应用,Lucene 都能作为一个强大且...

Global site tag (gtag.js) - Google Analytics