全文检索-solr

Vicky ·
更新时间:2024-11-13
· 547 次阅读

solr概念:
Solr是一个独立的企业级搜索应用服务器,它对外提供类似于Web-service的API接口。用户可以通过http请求,向搜索引擎服务器提交一定格式的XML文件,生成索引;也可以通过Http Get操作提出查找请求,并得到XML格式的返回结果。
solr中域的作用:
自定义域名和类型就是为了保存数据库表中一列一列的数据, 表中的列名要和索引库的域名对应

solr中域的分类:
field普通域: 大多数情况都可以用这个域来完成, 主要定义了域名和域的类型.
dynamicField动态域: solr中域名要先定义后使用, 没有定义就使用会报错, 如果没有定义的域名想使用可以
模糊匹配动态域, 让没有定义的域名可以使用.
uniqueKey主键域: 在添加数据的时候必须有主键域, 没有会报错, 这个不用添加也不用修改, 就使用这个默认的
域名id就可以.
copyField复制域: 复制域中有source叫做源域, dest代表目标域, 在维护数据的时候, 源域中的内容会复制到
目标域中一份, 从目标域中搜索, 就相当于从多个源域中搜索一样.

solr特点:
Solr是一个高性能,采用Java开发,
基于Lucene的全文搜索服务器。同时对其进行了扩展,提供了比Lucene更为丰富的查询语言,同时实现了可配置、可扩展并对查询性能进行了优化,并且提供了一个完善的功能管理界面,是一款非常优秀的全文搜索引擎。

ik中文分词器:
作用: 有中文语义分析的效果, 对中文分词效果好.
配置文件:
stopword.dic停止词典: 且分词的时候, 凡是出现在停止词典中的词都会被过滤掉.
ext.dic扩展词典: 凡是专有名词都会放到这里, 如果自然语义中不是一个词, 放到这里后solr
切分词的时候就会切分成一个词.

solrj:
solrJ是solr官方推出的客户端工具包, 将solrj的jar包放到我们项目中, 我们调用solrj中的api来远程给
solr服务器发送命令, solr服务器就可以完成对索引库的操作(添加修改删除查询)

spring Data Solr:
这是一个spring组织生产的一个操作solr的工具, 底层使用的是solrJ. 使用它可以将solrj那种原有的面向命令的操作
改为面向对象的操作, Java程序员使用起来更容易理解, 方便.

spring Data Solr里面的Criteria对象中的方法, is和contains的区别:
contains: 是相当于数据库中like模糊查询的方式, 将查询关键字当成一个整体进行模糊查询is: 将查询关键字使用对应这个域的分词器进行切分词, 然后将切分出来的每个词, 进行查询.


作者:sgwks



全文检索 solr

需要 登录 后方可回复, 如果你还没有账号请 注册新账号