精华内容
下载资源
问答
  • 全文检索

    2019-07-10 17:49:03
    什么是全文检索全文检索不同于特定字段的模糊查询,使用全文检索的效率更高,并且能够对于中文进行分词处理 常用的全文检索的包 haystack:django的一个包,可以方便地对model里面的内容进行索引、搜索,设计为...
    1. 什么是全文检索?
      全文检索不同于特定字段的模糊查询,使用全文检索的效率更高,并且能够对于中文进行分词处理
    2. 常用的全文检索的包

    haystack:django的一个包,可以方便地对model里面的内容进行索引、搜索,设计为支持whoosh,solr,Xapian,Elasticsearc四种全文检索引擎后端,属于一种全文检索的框架
    whoosh:纯Python编写的全文搜索引擎,虽然性能比不上sphinx、xapian、Elasticsearc等,但是无二进制包,程序不会莫名其妙的崩溃,对于小型的站点,whoosh已经足够使用
    jieba:一款免费的中文分词包

    1. 使用
      #安装包
    pip install django-haystack
    pip install whoosh
    pip install jieba
    

      #修改setting.py

    INSTALLED_APPS = (
        'haystack',
    )
    #添加搜索引擎
    HAYSTACK_CONNECTIONS = {
        'default': {
            'ENGINE': 'haystack.backends.whoosh_cn_backend.WhooshEngine',
            'PATH': os.path.join(BASE_DIR, 'whoosh_index'),
        }
    }
    
    #自动生成索引
    HAYSTACK_SIGNAL_PROCESSOR = 'haystack.signals.RealtimeSignalProcessor'
    

      #在项目的urls.py添加(注意不是应用)

    urlpatterns = [
        ...
        url(r'^search/', include('haystack.urls')),
    ]
    

      #在应用目录下建立search_indexes.py文件

    # coding=utf-8
    from haystack import indexes
    from models import GoodsInfo
    
    
    class GoodsInfoIndex(indexes.SearchIndex, indexes.Indexable):
        text = indexes.CharField(document=True, use_template=True)
    
        def get_model(self):
            return GoodsInfo
    
        def index_queryset(self, using=None):
            return self.get_model().objects.all()
    

      #在目录“templates/search/indexes/应用名称/”下创建“模型类名称_text.txt”文件

    #goodsinfo_text.txt,这里列出了要对哪些列的内容进行检索
    {{ object.gName }}
    {{ object.gSubName }}
    {{ object.gDes }}
    

    全文检索

    展开全文
  • 全文检索

    2016-07-01 19:16:06
    全文检索(full-text search),是指从文本或数据库中,不限定资料字段,自由地萃取出讯息的技术。 而搜索引擎(search engine),是指执行全文检索任务的程序,一般称作搜索引擎(search engine),它将使用者随意输入的...
    全文检索(full-text search),是指从文本或数据库中,不限定资料字段,自由地萃取出讯息的技术。 而搜索引擎(search engine),是指执行全文检索任务的程序,一般称作搜索引擎(search engine),它将使用者随意输入的文字,试图从数据库中,找到符合的内容

    <li> 标签定义列表项目。
    <li> 标签可用在有序列表 (<ol>) 和无序列表 (<ul>) 中。

    CSS中,可以用伪类来改变背景图片,一般有几种状态:
    a:link 未访问时候的状态
    a:hover 鼠标放上去时候的状态
    a:visited 已访问的状态
    a:active 鼠标按下去时候的状态

    你只要根据这几点来写就可以,你要点击后改变背景,可以这样写:
    a:link{background:url(原来的图片) no-repeat;}a:visited{background:url(点击过的图片) no-repeat;}
    展开全文
  • Oracle管理Oracle的全文检索技术 Oracle的全文检索技术 Oracle一直致力于全文检索技术的研究当Oracle9iRlease2发布之时Oracle数据库的全文检索技术已经非常完美OracleText使Oracle9i具备了强大的文本检索能力和智能...
  • Lucene全文检索案例

    2018-05-27 14:42:46
    Lucene全文检索案例Lucene全文检索案例Lucene全文检索案例Lucene全文检索案例
  • 采用的LAMP技术开发,所以自然想到了MySQL的全文检索功能。现在将自己搜集的一些资料小结,作为备忘。MySQL引擎据目前查到的资料,只有MyISAM引擎支持全文检索(full text index),查询效率高。但是有局限,不支持...

    本文目的

    最近有个项目需要对数据进行搜索功能。采用的LAMP技术开发,所以自然想到了MySQL的全文检索功能。现在将自己搜集的一些资料小结,作为备忘。

    MySQL引擎

    据目前查到的资料,只有MyISAM引擎支持全文检索(full text index),查询效率高。但是有局限,不支持事务和外键。

    Innodb支持事务和外键,但是不支持全文检索。所以,如果需要全文检索的数据,需要使用MyISAM引擎创建表。

    MySQL中文全文检索

    很遗憾,目前mysql不支持中文全文检索。目前有两种解决方案

    方案1:使用mysql中文检索插件,个人认为可控性较差,虽然使用方便,但是如果后期插件出现问题,比较难解决。优点就是前期工作量相对较小。

    方案2:中文分词+GB2312编码:通过分词将原文分隔开,然后转成GB2312的二进制文本形式(如一个字,4个字节A623,这样就可以搜索单个中文)。(转成GB2312编码是为了避免中英文混合搜索。mysql全文检索最小长度默认4(ft_min_word_len)个字,中文是4个汉字,英文是4个字母。对于中文,基本上都是2子词,所以设置ft_min_word_len为2,但英文中,2字的单词一般没有什么特殊意义,如‘is’,‘do’等,所以为了兼顾中英文语法习惯,将中文适当‘变长’,也就是转成GB2312的可见形式编码)

    方案3:中文分词,ft_min_word_len设置为2,调用'repair table your_table quick',修复索引。相比方案2,此方案较节省空间。对于主要使用中文的系统而言,此方案更佳。

    创建全文索引

    举一个文章表(t_article)的例子,title和body作为列子,如下:

    CREATE TABLE`t_article` (

    `title`varchar(100) DEFAULT NULL,

    `body`text,

    FULLTEXTKEY`ft_title` (`title`),

    FULLTEXTKEY`ft_body` (`body`)

    ) ENGINE=MyISAM DEFAULT CHARSET=latin1;

    P.S.:如果有个表已经创建了全文索引,想要查看创建语法,可以使用“SHOW CREATE TABLE talbe_name;”这条命令显示表格的创建语句。

    注意红色高亮部分就是全文检索的语法。删除也很简单,比如删除title的全文索引,“ALTER TABLE t_article DROP INDEX ft_title;”。

    使用SQL检索

    比如期望对body中的数据进行全文检索,命令如下

    SELECT title, MATCH(body) AGAINST('php and other key word') ASscoreFROMt_articleWHERE MATCH(body) AGAINST('php and other key word');

    注意这里的score很重要,该值代表了关键字与文本的相关性,该值一般在0到1之间,但是也可能达到4或更多。

    相关资料

    转自:http://www.cnblogs.com/bourneli/archive/2012/08/09/2630753.html

    展开全文
  • Lucene是apache软件基金会4 jakarta项目组的一个子项目,是一个开放源代码的全文检索引擎工具包,但它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部分文本分析引擎...
    Lucene是apache软件基金会4 jakarta项目组的一个子项目,是一个开放源代码的全文检索引擎工具包,但它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部分文本分析引擎(英文与德文两种西方语言)。

    目的

    Lucene的目的是为软件开发人员提供一个简单易用的工具包,以方便的在目标系统中实现全文检索的功能,或者是以此为基础建立起完整的全文检索引擎。Lucene是一套用于全文检索和搜寻的开源程式库,由Apache软件基金会支持和提供。Lucene提供了一个简单却强大的应用程式接口,能够做全文索引和搜寻。在Java开发环境里Lucene是一个成熟的免费开源工具。就其本身而言,Lucene是当前以及最近几年最受欢迎的免费Java信息检索程序库。人们经常提到信息检索程序库,虽然与搜索引擎有关,但不应该将信息检索程序库与搜索引擎相混淆

    历史

    Lucene最初是由Doug Cutting开发的,在SourceForge的网站上提供下载。在2001年9月作为高质量的开源Java产品加入到Apache软件基金会的 Jakarta家族中。随着每个版本的发布,这个项目得到明显的增强,也吸引了更多的用户和开发人员

    突出的优点

    Lucene作为一个全文检索引擎,其具有如下突出的优点:

    (1)索引文件格式独立于应用平台。Lucene定义了一套以8位字节为基础的索引文件格式,使得兼容系统或者不同平台的应用能够共享建立的索引文件。

    (2)在传统全文检索引擎的倒排索引的基础上,实现了分块索引,能够针对新的文件建立小文件索引,提升索引速度。然后通过与原有索引的合并,达到优化的目的。

    (3)优秀的面向对象的系统架构,使得对于Lucene扩展的学习难度降低,方便扩充新功能。

    (4)设计了独立于语言和文件格式的文本分析接口,索引器通过接受Token流完成索引文件的创立,用户扩展新的语言和文件格式,只需要实现文本分析的接口。

    (5)已经默认实现了一套强大的查询引擎,用户无需自己编写代码即可使系统可获得强大的查询能力,Lucene的查询实现中默认实现了布尔操作、模糊查询(Fuzzy Search[11])、分组查询等等。

    d6da31a526dc52c7f0c2e806c2d4c82d.png

    对比商业全文检索引擎

    面对已经存在的商业全文检索引擎,Lucene也具有相当的优势。

    首先,它的开发源代码发行方式(遵守Apache Software License[12]),在此基础上程序员不仅仅可以充分的利用Lucene所提供的强大功能,而且可以深入细致的学习到全文检索引擎制作技术和面向对象编程的实践,进而在此基础上根据应用的实际情况编写出更好的更适合当前应用的全文检索引擎。在这一点上,商业软件的灵活性远远不及Lucene。

    其次,Lucene秉承了开放源代码一贯的架构优良的优势,设计了一个合理而极具扩充能力的面向对象架构,程序员可以在Lucene的基础上扩充各种功能,比如扩充中文处理能力,从文本扩充到HTML、PDF[13]等等文本格式的处理,编写这些扩展的功能不仅仅不复杂,而且由于Lucene恰当合理的对系统设备做了程序上的抽象,扩展的功能也能轻易的达到跨平台的能力。

    Apache助力Lucene的发展

    转移到apache软件基金会后,借助于apache软件基金会的网络平台,程序员可以方便的和开发者、其它程序员交流,促成资源的共享,甚至直接获得已经编写完备的扩充功能。最后,虽然Lucene使用Java语言写成,但是开放源代码社区的程序员正在不懈的将之使用各种传统语言实现(例如.net framework[14]),在遵守Lucene索引文件格式的基础上,使得Lucene能够运行在各种各样的平台上,系统管理员可以根据当前的平台适合的语言来合理的选择。

    展开全文
  • 全文检索参考

    2012-01-15 22:48:28
    全文检索文档全文检索文档全文检索文档全文检索文档全文检索文档
  • 全文检索技术

    千次阅读 2019-09-24 21:33:49
    全文检索技术
  • PHP+MYSQL实现全文检索如何使用PHP实现全文检索功能?很多人可能马上可以想出几种方案,比如:文件检索法、采用SQL的like语句等方法,但这些方法效率都相当的低。这里介绍一种比较高效的PHP全文检索实现方法,这就是...
  • windows检索doc 全文检索 FileLocator Pro DocFetcher AnyTXT Searcher
  • 全文检索简介

    2020-07-22 10:54:46
    什么是全文检索 全文检索是计算机程序通过扫描文章中的每一个词,对必要的词建立一个索引,指明该词在文章中出现的次数和位置。当用户查询时根据建立的索引查找,类似于通过字典的检索字表查字的过程。 全文检索...
  • 全文检索Lucene

    2020-09-26 23:58:35
    一 为什么需要全文检索 解决数据库模糊搜索坏处: 1 海量数据like查询效率低 2 查询效果不好(不分词) 3 没有相关度排序 4 没有高亮 5 没有摘要截取 二 什么是全文检索 广义:对结构化数据先创建索引,...
  • django 全文检索

    2019-06-18 10:46:11
    ###全文检索 全文检索不同于特定字段的模糊查询,使用全文检索的效率更高,并且能够对于中文进行分词处理 haystack: 全文检索的框架,支持whoosh、solr、Xapian、Elasticsearc四种全文检索引擎,点击查看官方网站...
  • 全文检索工具

    2013-01-07 16:16:39
    全文检索工具,支持中文,支持文本、PDF、word...需首先对要检索的目录建立索引,之后即可进行全文检索,可显示含检索词的全部文件,点击文件即可浏览,对检索词高亮显示,可在检索词间跳转,一款非常好用的检索工具。
  • Elasticsearch in Action 全文检索Elasticsearch in Action 全文检索Elasticsearch in Action 全文检索Elasticsearch in Action 全文检索Elasticsearch in Action 全文检索Elasticsearch in Action 全文检索

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 17,741
精华内容 7,096
关键字:

全文检索