`
awenhaowenchao
  • 浏览: 71935 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Luncene2.0+Heritrix开发自己的搜索引擎 泛读一

阅读更多
    今儿,多喝了几扎,所以更新晚了,废话少说。我看书看资料习惯泛读后精读再精读,所以现在先把泛读所感记下。如果路人,请别见笑!
    
    本人对搜索引擎的学习是从lucene2.0开始,所以谈谈对lucene暂时了解部分的感悟。
   
    搜索引擎呢,据我所领悟的就是抓取数据(存储、索引、分词)、读取数据(根据不同需求读取或者说分析用户的需求获取数据)。抓取数据就是对数据的采集,包括Sting,二进制byte[],inputStream等等,将搜集的数据存储为segments,一个索引可以分为多个segment,但只会生成一个segments文件,而会生成多个其他文件,但是按照一定规则前缀命名。其中需要注意的就是每次重新更新索引都会对所有索引进行更新,所以如果但服务器的话对特别影响性能(当然以一般都是分布式,小弟再研究完lucene后会研究hadoop);再生成索引后,会生成搜索文档内部的id(便于管理,包括以后的hits等等都是用的内部编号)。读取数据,说白了就是查询,包括根据不同的term词条,短语,多词条,模糊,逻辑等等,当然这些都是api级别的查询,熟练程度而已,技术就是一张纸,需要领悟的是道。
   
    貌似这样就可以得到了想要的一些东西,当然这是最小儿科的,其中提到了过滤器(索引级的)。当然这些可以对检查结果进行过滤,但是不提倡,因为毕竟是索引级的,需要对索引进行遍历,性能上不允许。另外需要的提到的是,文中提到了多线程查询,据编者话是由于插件未考虑线程池的原因造成多线程访问比单线程访问更消耗性能,有点本人继续研究,呵呵。

    另外就是排序,分词等,排序用到了sort,sortfield等等,其实换汤不换换药,sortfield就是为了实现sort,呵呵。需要注意的是如果根据多个字段sort的话,可能会按照某个字段排序的前提下再遵守另一个字段排序;分词呢就索引或者访问的内容都需要一个分析器(包括分词器和过滤器),分词一般来说,就是对短语或者文本进行合理拆分,中文不想英文呢那样每个单词之间都有空格分割,所以中文一般的分词方式都是有一个词库来影射,这样达到分词效果。过滤器一般是对一些敏感文字或者需要转义的词语进行顾虑。总的来说分析器是索引和检索都依赖的部分,可以说che core of a search engine
 
   当然这其中不仅包括对txt的读取,还包括对pdf,excel,word的资源的获取,这些一般的程序员应该都知道怎么解析吧,不再赘述。

   下面简述一下流程:

    搜索引擎定期对要获取的资源进行分类(索引,存储,分词(依赖分析器)等),在用户获取自己想要的数据时搜索引擎对关键词进行分析(依赖分析器),返回用户想要的结果(还可以再结果中查找),当然这其中可以扩展一些cache,数据库等方面提升性能的方案。
   
    虽然我写点太白话,太没有“数据”,但是请大家记住读书也是读里面的“道”,希望第一博能是一个好的开始!
  
分享到:
评论

相关推荐

    Luncene2.0+Heritrix开发自己的搜索引擎01(源码)

    在构建一个自定义搜索引擎的过程中,Luncene 2.0 和 Heritrix 是两个关键的组件。Luncene 是一个流行的全文检索库,而 Heritrix 是一款强大的网络抓取工具,它们共同为搜索引擎的搭建提供了坚实的基础。下面将详细...

    Luncene2.0+Heritrix开发自己的搜索引擎

    综上所述,利用 Luncene 2.0 和 Heritrix 开发自己的搜索引擎涉及到了网络爬虫、文本处理、索引构建、搜索算法等多个领域,是一个复杂而有趣的工程实践。通过理解并掌握这些技术,可以创建出高效、定制化的搜索引擎...

    全文搜索luncene.Net

    Lucene.Net是一款开源的全文搜索引擎库,它为.NET开发者提供了强大的文本检索功能。作为Apache Lucene项目的.NET版本,它在.NET Framework上实现了原生Lucene的功能,使得.NET开发者也能享受到高性能、可扩展的全文...

    luncene jar包Java专用

    这个库包含了所有必要的类和方法,使得开发人员能够构建自己的搜索引擎应用,对文本数据进行索引、搜索和分析。 描述中提到了“paoding分词”,这是指Paoding River,一个流行的中文分词工具。在处理中文文本时,...

    Lucene开发手册

    它并非一个完整的搜索引擎产品,而是一个搜索引擎框架,允许开发者根据自身需求定制搜索引擎解决方案。 **1.1 前言** Lucene的开发手册旨在帮助Java开发人员理解和运用Lucene来创建自定义的搜索引擎。手册的目标...

    基于struts2实现的lucene搜索引擎

    【基于Struts2实现的Lucene搜索引擎】是一个典型的Java Web应用程序,它整合了Apache的Lucene库,用于在Web环境中构建高效、可扩展的全文检索功能。Lucene是Java领域中广泛使用的开源全文检索库,提供了强大的文本...

    ASP.NET with Luncene.net

    ASP.NET是Microsoft推出的用于构建Web应用程序的框架,而Lucene.NET则是一个强大的全文搜索引擎库,被许多开发者用来为他们的应用添加高效的搜索功能。 ASP.NET是.NET Framework的一部分,它提供了一个模型驱动的...

    Luncene API

    Luncene的API,详细接受了Luncene的使用方法

    java+lucene)1236.rar_Lucene 搜索_Luncene_lucene_lucene web

    在本项目中,开发人员利用Java编程语言与Lucene的结合,构建了一个能够处理公交信息查询的搜索引擎。 【描述】"java(lucene)版的公交搜索系统,我最近在我拿工商看到的一个非常好的" 表示这个系统是基于Java和...

    luncene in action中文版

    luncene in action中文版 doc格式

    luncene api

    Apache Lucene是一个开源全文搜索引擎库,它为开发者提供了在各种应用程序中实现高级搜索功能所需的工具。Lucene API(Application Programming Interface)是这个库的核心部分,允许程序员与Lucene进行交互,构建...

    Mysoo站内搜索结合luncene

    在本文中,我们将深入探讨如何结合开源全文搜索引擎Lucene实现一个高效的站内搜索系统,尤其针对Java开发环境。 Lucene是Apache软件基金会的一个开放源代码项目,它是一个高性能、全文本搜索引擎库。Lucene提供了...

    基于Java的Luncene的compass框架说明使用技术文档.pdf

    Compass是一款优秀的开源Java搜索引擎框架,它能够帮助应用程序实现更为强大的搜索引擎语义能力。Compass依赖于顶级的Lucene搜索引擎,并与诸如Hibernate和Spring等流行框架相结合,为应用程序提供了从数据模型和...

    luncene索引PDF、Html、word.txt

    Lucene是一款高性能、全功能的文本搜索引擎库,被广泛应用于多种场景下的全文检索应用开发中。本篇文章将详细介绍如何使用Lucene对PDF、HTML、Word及纯文本(TXT)文件进行索引,以便实现高效的信息检索。 #### ...

    中文分词器(mmseg4j + luncene5.X)源码+jar包

    mmseg4j是一款高效、灵活的Java实现的中文分词工具,而Lucene则是一个强大的全文搜索引擎库。当两者结合时,可以为中文文本的索引和搜索提供强大支持。本文将详细介绍mmseg4j和Lucene5.x的基本概念,以及如何将它们...

    luncene in action 003

    标题与描述均为“luncene in action 003”,但是需要注意的是正确的拼写应为“Lucene in Action”,这是一本介绍Apache Lucene的书籍。由于提供的部分内容仅包含了一些重复的试读版本声明及网址,并未提供具体的章节...

    基于Luncene的compass框架详解-java

    一个形象的比喻是,Compass对于Lucene,就像Hibernate对于JDBC一样,它完全参照Hibernate的开发模式,极大地提升了搜索框架的易用性和功能性。 3. **OSEM (Object Search Engine Mapping)**: OSEM是一种通过XML配置...

    luncene

    luncene 简单的开原项目

Global site tag (gtag.js) - Google Analytics