基于ElasticSearch实现商品的全文检索检索

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_23864697/article/details/79950102

全文检索

相关概念

    数据分类;

        结构化数据:行数据,存储在数据库里,可以用二维表结构来逻辑表达实现的数据能够用数据或统一的结构加以表示,可以用数字和符号加以表示

        非结构化数据:无法用数字或统一的结构表示 文本、图像、声音、网页 

        结构化数据属于非结构化数据,非结构化数据即为全文数据

    全文检索:一种将文件中或者数据库中所有文本与检索项匹配的文字资料检索方法,对全文数据的检索

    两种方法:

     顺序扫描法:

     索引扫描法

     全文检索的基本思路,也即将非结构化数据中的一部分信息提取出来,重新组织,使其变得有一定结构,然后对此有一定结构的数据进行检索,从而达到搜索相对较快的目的

      两个过程

       索引创建

            索引中保存了什么 字典 索引只会创建一次

                

            第一步:一些要索引的原文档    

            第二步:将原文档传给分词组件

            第三步:将得到的词元(Token)传给语言处理组件(Linguistic Process)   

    

            第四步:将得到的词(Term)传给索引组件(Indexer)


搜索索引

 第一步:用户输入查询语句

 第二步:对查询语句进行词法分析,语法分析及语言处理

 第三步:搜索索引,得到符合文档

全文检索引擎

    全文检索引擎是目前广泛应用的主流搜索引擎

    它的工作原理是计算机索引程序通过扫描文章中的每一个词,对每个词建立一个索引,指明该词在文章中出现的次数和位置当用户查询时,检索程序就根据事先建立的索引进行查找,并将查找的结果反馈给用户的检索方式

    主流开源额全文检索引擎

    

 ElasticSearch相关概念

     ElasticSearch 是一个基于Apache Lucene(TM)的开源搜索引擎。无论在开源还是专有领域,Lucene可以被认为是迄今为止最先进、性能最好的、功能最全的搜索引擎库

    为什是ElasticSerach

        ElasticSearch也使用Java开发并使用Lucene作为其核心来实现所有索引和搜索的功能,但是它的目的是通过简单的Restful API来隐藏Lucene的复杂性,从而让全文搜索变得简单

         分布式的实时文件存储,每个字段都被索引可被搜索

        分布式的实时分析搜索引擎

        可以扩展到奥上百台服务器,处理PB级结构化或非结构化数据

         所有的功能集成在一个服务里面,可以通过Restful api、各种语言的客户端甚至命令行与之交互,上手容易,提供了很多合理的缺省值,开箱即用,学习成本低。可免费下载、使用和修改、配置灵活

安装Es同时安装中文分词组件

    全文检索的测试

     curl -XPOST "http://192.168.199.112:9200/_analyzer=ik&pretty" -d '这是一个商品的标题'



    

    

阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页