【Solr】整体说明

概念

Solr是一个独立的企业级搜索应用服务器,它对外提供类似于Web-service的API接口。

用户可以通过http请求,向搜索引擎服务器提交一定格式的XML文件,生成索引;也可以通过Http Get操作提出查找请求,并得到XML格式的返回结果。

Solr可以独立运行,运行在Jetty、Tomcat等这些Servlet容器中。

Solr不提供构建UI的功能,Solr提供了一个管理界面,通过管理界面可以查询Solr的配置和运行情况。

功能

  • 先进的全文搜索功能
  • XML,JSON和HTTP - 基于开放接口标准
  • 高度可扩展和容错
  • 同时支持模式和无模式配置
  • 分页搜索和过滤
  • 支持英语,德语,中国,日本,法国和许多主要语言
  • 丰富的文档分析

全文检索 实现

顺序扫描 vs 全文检索

  • 顺序扫描法:对文档依次查找,包含目标字段的文档就记录下来。顺序扫描法在文档数量较少的情况下,查找速度比较快,但是当文档数量很多时,查找速度就会变慢。

  • 全文检索:对文档内容进行分词,对分词后的结果创建索引,然后通过对索引进行搜索的方式叫做全文检索。

基本逻辑

  1. 索引创建:将现实世界中所有的结构化和非结构化数据提取信息,创建索引的过程。

  2. 搜索索引:就是得到用户的查询请求,搜索创建的索引,然后返回结果的过程。

实现步骤

  1. 获得一些要索引的原文档(Document)
  2. 将原文档传给分次组件(Tokenizer)
  3. 将得到的词元(Token)传给语言处理组件(Linguistic Processor)
  4. 将得到的词(Term)传给索引组件(Indexer)

索引过程

  1. 有一系列被索引文件
  2. 被索引文件经过语法分析和语言处理形成一系列词(Term)
  3. 经过索引创建形成词典和反向索引表
  4. 通过索引存储将索引写入硬盘

搜索过程

  1. 用户输入查询语句
  2. 对查询语句经过语法分析和语言分析得到一系列词(Term)
  3. 通过语法分析得到一个查询树
  4. 通过索引存储将索引读入到内存
  5. 利用查询树搜索索引,从而得到每个词(Term)的文档链表,对文档链表进行交,差,并得到结果文档
  6. 将搜索到的结果文档对查询的相关性进行排序
  7. 返回查询结果给用户

小结

Solr的目标是打造一款企业级的搜索引擎系统。

它是一个搜索引擎服务,可以独立运行,通过Solr可以非常快速的构建企业的搜索引擎,通过Solr也可以高效的完成站内搜索功能。

 
 

参考:
https://blog.csdn.net/xiaoyu411502/article/details/44803859
https://blog.csdn.net/u014209975/article/details/53263642

猜你喜欢

转载自blog.csdn.net/Francis123580/article/details/81676912