`
gladstone
  • 浏览: 71031 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
社区版块
存档分类
最新评论

[全文检索]离开lucene姑娘的日子

阅读更多
说起JAVA的全文检索,最常被提起的应该就是lucene



但是吧,数据量一大了,建索引额外耗费系统资源。CT目前是建索引的batch和web系统分离的,全站多线程建索引耗费时间在2小时左右。

而且lucene本身自带的StandardAnalyzer对于中文的分词相当弱智(有专门的中文分词器,稍后日志里面会介绍)。

不想花那么多心思在上面怎么办?怎摸办?其实lucene姑娘并不是唯一的选择。大多数的RDBMS都是自带有全文检索功能的。

不例外,MYSQL里也有原生态的全文检索支持。而且性能还相当不错,对于百万级别以下的系统是绰绰有余的。

最经常被使用的innoDB是不支持全文检索的,我们需要MyISAM引擎



但是,数据库已经是innoDB了怎摸办? 有个办法是另建一张搜索表。

比如,原先的表是 bbs_topics,可以针对需要建立索引的列,另建一张全文索引表:


CREATE TABLE search_bbs_topics (


  `id` INTEGER UNSIGNED NOT NULL,


  `title` TEXT NOT NULL,


  `author` VARCHAR(45) NOT NULL,


  PRIMARY KEY (`id`)


)


ENGINE = MyISAM;





ALTER TABLE search_bbs_topics ADD FULLTEXT INDEX fullTextTitle(`title`);


然后INSERT INTO把相应的数据插入表中。








这样,就可以通过 match(列名) against('*匹配数据*' in boolean mode) 的语法来全文检索了。









对于不是很庞大的数据量,结合庖丁的中文分词,效果还是可以的:




相关搜索:




然后还有一个什么问题捏?主表有插入/更新之后,搜索表的数据怎么办?用触发器可以同步两张表的数据,具体就不多八卦鸟。


 发布时间:2008-11-07 23:31:43 | 阅读:349 | 评论:0 
分享到:
评论

相关推荐

    开放源代码的全文检索引擎Lucene

    开放源代码的全文检索引擎Lucene开放源代码的全文检索引擎Lucene开放源代码的全文检索引擎Lucene

    Lucene全文检索引擎

    **Lucene全文检索引擎** Lucene是Apache软件基金会的一个开源项目,它是一个高性能、全文本搜索引擎库,可以被集成到各种应用中实现全文检索功能。Lucene提供了完整的搜索功能实现,包括索引创建、文档存储、查询...

    开放源代码的全文检索引擎Lucene.pdf

    ### 全文检索引擎Lucene知识点详解 #### 1. 全文检索系统与Lucene简介 ##### 1.1 全文检索与全文检索系统定义 全文检索是指计算机索引程序通过对文章中的每一个词建立索引,记录其在文章中的出现次数和位置,以...

    全文检索(Lucene)详解

    **全文检索(Lucene)详解** Lucene是一个高性能、全文本搜索库,由Apache软件基金会开发并维护。它提供了一个简单但功能强大的API,用于在各种数据源中进行高效的全文检索。Lucene不仅用于网站搜索引擎,还广泛...

    lucene例子(一个完整的,lucene例子)(lucenetest.rar,lucene,全文检索,lucene例子)

    lucenetest.rar,lucene,全文检索,lucene例子 lucenetest.rar,lucene,全文检索,lucene例子lucenetest.rar,lucene,全文检索,lucene例子

    lucene全文检索简单索引和搜索实例

    《Lucene全文检索:简单索引与搜索实例详解》 Lucene是Apache软件基金会的开源项目,是一款强大的全文检索库,被广泛应用于Java开发中,为开发者提供了构建高性能搜索引擎的能力。在本文中,我们将深入探讨如何基于...

    Lucene.Net 实现全文检索

    在本案例中,我们将在 .Net MVC4 框架上使用 Lucene.Net 来构建一个全文检索系统。 首先,我们需要理解全文检索的基本概念。全文检索是指在文档集合中,根据用户输入的查询词,查找包含这些词的文档。与传统的...

    全文检索引擎Lucene

    **全文检索引擎Lucene** Lucene是一个开源的全文检索库,由Apache软件基金会开发并维护。它是Java语言编写,提供高性能、可扩展的信息检索服务。Lucene的核心功能包括文本分析、索引创建、搜索和排序,是构建搜索...

    [HeyJava][传智播客]全文检索Lucene源码

    【标题】:“HeyJava传智播客全文检索Lucene源码” 【描述】:这个资源主要聚焦于Lucene,一个广泛使用的全文检索库,由Apache软件基金会开发并维护。通过学习这部分内容,你可以深入理解Lucene如何实现高效的文本...

    全文检索系统(Lucene)

    **全文检索系统与Lucene** 全文检索系统是一种用于在大量文本数据中快速查找相关信息的工具。它通过索引文本中的关键词来实现高效的搜索性能,使得用户可以输入任意词汇或短语,系统能在短时间内返回最相关的文档。...

    开放源代码的全文检索引擎Lucene终稿.pdf

    《开放源代码的全文检索引擎Lucene终稿》是一份深度解析开源全文检索引擎Lucene的文档,旨在介绍Lucene的基本概念、系统架构以及源码实现。全文主要分为四个部分,详细阐述了Lucene的核心技术和应用。 在第一部分,...

    lucene3.5全文检索案例lucene+demo

    《深入剖析Lucene 3.5全文检索技术与实战演示》 Lucene是一个高性能、全文检索库,由Apache软件基金会开发并维护。在3.5版本中,Lucene提供了强大的文本处理、索引构建和搜索功能,使得开发者可以轻松地在自己的...

    Java全文检索引擎Lucene的应用.pdf

    ### Java全文检索引擎Lucene的应用 #### 一、引言 随着信息技术的飞速发展,尤其是数据库技术和数据库管理系统(DBMS)的广泛应用,全球范围内的数据量急剧增长。特别是在科学研究领域,面对海量的数据,传统的手工...

    全文检索Lucene 全文检索Lucene

    以上内容只是Lucene全文检索的基础知识,实际使用中还需要根据具体需求进行调整和优化。在深入学习Lucene的过程中,阅读《全文检索Lucene》这本书将是十分有益的,它将帮助你更好地理解和掌握Lucene的核心概念及其...

    SpringMvc+Lucene全文检索

    **Spring MVC + Lucene 全文检索** 在现代Web应用中,实现高效的全文检索功能是提升用户体验的关键之一。本文将详细介绍如何使用Spring MVC框架结合Apache Lucene库来构建一个强大的全文检索系统。首先,让我们了解...

Global site tag (gtag.js) - Google Analytics