时间:2021-05-19
Solr是一个独立的企业级搜索应用服务器,它对外提供类似于Web-service的API接口。用户可以通过http请求,向搜索引擎服务器提交一定格式的XML文件,生成索引;也可以通过Http Get操作提出查找请求,并得到XML/Json格式的返回结果。采用Java5开发,基于Lucene。
Lucene是apache软件基金会4 jakarta项目组的一个子项目,是一个开放源代码的全文检索引擎工具包,即它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部分文本分析引擎(英文与德文两种西方语言)。
其中Lucene全文检索的基本原理,跟郭军大牛讲的web搜索课程里的技术一致,采用分词,语义语法分析,向量空间模型等技术来实现,下面转载一篇讲的比较细致的博文备忘:http://.cn/about.htm中文章《开放源代码的全文检索引擎Lucene》
1. 索引过程:
1) 有一系列被索引文件
2) 被索引文件经过语法分析和语言处理形成一系列词(Term)。
3) 经过索引创建形成词典和反向索引表。
4) 通过索引存储将索引写入硬盘。
2. 搜索过程:
a) 用户输入查询语句。
b) 对查询语句经过语法分析和语言分析得到一系列词(Term)。
c) 通过语法分析得到一个查询树。
d) 通过索引存储将索引读入到内存。
e) 利用查询树搜索索引,从而得到每个词(Term)的文档链表,对文档链表进行交,差,并得到结果文档。
f) 将搜索到的结果文档对查询的相关性进行排序。
g) 返回查询结果给用户。
2. 对字典按字母顺序进行排序。
Term
Document ID
allow
1
allow
1
allow
2
beer
1
drink
1
drink
2
find
2
friend
1
friend
2
go
1
go
2
his
2
jerry
2
my
2
school
2
see
2
student
1
student
2
their
1
them
2
3. 合并相同的词(Term)成为文档倒排(Posting List)链表。
在此表中,有几个定义:
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
Solr是基于Lucene的全文检索服务器,可配置、可扩展,并对索引和搜索性能进行了优化。Solr多用于电子商务网站、门户、论坛这类网站的站内搜索。Solr可以
solr是什么?solr是apache下的一个顶级开源项目,采用java开发,它是基于lucene的全文搜索服务器。solr提供了比lucene更为丰富的查询语
Sphinx是一个基于SQL的全文检索引擎,可以结合MySQL,PostgreSQL做全文搜索,它可以提供比数据库本身更专业的搜索功能,使得应用程序更容易实现专
基于Lucene实现网页的索引和搜索。Lucene是ApacheJakarta项目中的一个子项目。是一个由Java实现的,开源的全文检索引擎工具包。利用它提供的
ApacheSolr是一个搜索引擎。SpringBoot为solr客户端库及SpringDataSolr提供的基于solr客户端库的抽象提供了基本的配置。Spr