全文搜索 介绍

首先数据是分为 结构化  和  非结构化的:

 

 

 非结构化数据的检索一般用下面2个方法:

  • 顺序扫描法
  • 全文搜索

顺序扫描法,例:找一个包含 某字符 的文件,那么它会一个文件一个文件的查找,这个文件从头查到尾,直到找到为止。【适用于小数据量文件,因为要担心效率】

全文搜索:把一些非结构化的数据 转为 结构化的数据,然后创建索引,实现搜索的目的【一般查询大文件、多文件 什么的..】,例:字典,里面有拼音、偏旁部首、笔画..这些就是 规则 或者说是 索引(结构化了)

 

全文搜索实现原理:

建立文本库  数据源

建立索引  提取规律

执行搜索  用户发起

过滤结构  查询到的有些可能是脏数据等。。

返回结果  用户接受

 

全文搜索实现技术

基于Java开源实现:

  1. Lucene
  2. ElasticSearch
  3. Solr

 

Lucene:基于全文检索和搜寻的开源程序库,由Apache软件基金会支持和提供,有一个简单却强大的应用程序接口(API),能够做全文索引和搜寻,在Java开发环境里Lucene是一个成熟的免费开放源代码工具,但它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎。

 

Elasticsearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java语言开发的,并作为Apache许可条款下的开放源码发布,是一种流行的企业级搜索引擎。Elasticsearch用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。官方客户端在Java、.NET(C#)、PHP、Python、Apache Groovy、Ruby和许多其他语言中都是可用的。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr,也是基于Lucene。

 

Solr是一个独立的企业级搜索应用服务器,它对外提供类似于Web-service的API接口。用户可以通过http请求,向搜索引擎服务器提交一定格式的XML文件,生成索引;也可以通过Http Get操作提出查找请求,并得到XML格式的返回结果。【貌似仅支持Json 和 Xml  ,但未证实】

 

posted @ 2021-11-07 09:30  咸瑜  阅读(308)  评论(0编辑  收藏  举报