`
liuzm
  • 浏览: 101545 次
  • 性别: 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的基本操作。Lucene是一个高性能、全功能的文本搜索引擎库,它允许用户对文档进行索引和搜索。本...

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

Global site tag (gtag.js) - Google Analytics