• 基于.NET的全文索引引擎Lucene.NET


          最近我在学习Lucene.net的应用,先在这里向大家介绍一下,Lucene.net是一个高性能的全文检索引擎,而且免费、开源,几乎适合于任何需要全文检索的应用,尤其是跨平台的应用,它由Java下的Lucene移植而来,在Java平台已经得到了广泛的应用。与传统数据库检索相比,Lucene.net具有以下特点:

      Lucene全文索引引擎 数据库
    索引 将数据源中的数据都通过全文索引一一建立反向索引 对于LIKE查询来说,数据传统的索引是根本用不上的。数据需要逐个遍历记录进行GREP式的模糊匹配,比有索引的搜索速度要有多个数量级的下降。
    匹配效果 通过词元(term)进行匹配,通过语言分析接口的实现,可以实现对中文等非英语的支持。 使用:like "%net%" 会把netherlands也匹配出来,
    多个关键词的模糊匹配:使用like "%com%net%":就不能匹配词序颠倒的xxx.net..xxx.com
    匹配度 有匹配度算法,将匹配程度(相似度)比较高的结果排在前面。 没有匹配程度的控制:比如有记录中net出现5词和出现1次的,结果是一样的。
    结果输出 通过特别的算法,将最匹配度最高的头100条结果输出,结果集是缓冲式的小批量读取的。 返回所有的结果集,在匹配条目非常多的时候(比如上万条)需要大量的内存存放这些临时结果集。
    可定制性 通过不同的语言分析接口实现,可以方便的定制出符合应用需要的索引规则(包括对中文的支持) 没有接口或接口复杂,无法定制
    结论 高负载的模糊查询应用,需要负责的模糊查询的规则,索引的资料量比较大 使用率低,模糊匹配规则简单或者需要模糊查询的资料量少

    全文检索和数据库查询最大的不同在于:让最相关的头100条结果满足98%以上用户的需求   

    Lucene.net是一套全文检索的开发包而不是实际应用,它已经包含了智能分词、高亮关键字、索引算法等基本构件,只需对其进行简单的二次开发,即可应用在实际项目中。现在大家使用这个Blog的搜索引擎就是基于Lucene.net的。

    相关资源:

    Lucene.Net search engine library: http://sourceforge.net/projects/lucenedotnet/
    dotLucene a search engine library: http://sourceforge.net/projects/dotlucene/
    NLucene – A .NET search engine:   http://sourceforge.net/projects/nlucene/

  • 相关阅读:
    session
    php增删改查,分页
    sql题
    php简单的数据增删改查
    php简单登录注册验证
    js题
    jQHTML(获取内容和属性)
    jQ效果(动画)
    Codeforces Round #460 (Div. 2): D. Substring(DAG+DP+判环)
    POJ 2891 中国剩余定理(不互素)
  • 原文地址:https://www.cnblogs.com/flyfish/p/298853.html
Copyright © 2020-2023  润新知