1.Solr简介:
Solr是一个基于Lucene的Java搜索引擎服务器。Solr 提供了层面搜索、命中醒目显示并且支持多种输出格式(包括 XML、 JSON、Python、Ruby 、Php、csv格式)。它易于安装和配置,而且附带了一个基于 HTTP 的管理界面。Solr已经在众多大型的网站中使用,较为成熟和稳定。Solr 包装并扩展了 Lucene,所以Solr的基本上沿用了Lucene的相关术语。更重要的是,Solr 创建的索引与 Lucene 搜索引擎库完全兼容。通过对Solr 进行适当的配置,某些情况下可能需要进行编码,Solr 可以阅读和使用构建到其他 Lucene 应用程序中的索引。此外,很多 Lucene 工具(如Nutch、 Luke)也可以使用Solr 创建的索引。
2.solr we管理界面的主界面说明;
1)访问solr主页,http://服务器ip:端口(默认为80)/solr,此文档说明的solr服务是部署在tomcat下,默认显示此页内容,包含solr版本(此版本为5.2.1),包含系统内存和jvm内存的使用情况,jvm参数等;
2)logging 日志信息
可以查看在使用solr过程中产生的日志信息,也可以临时改变日志设置;
3)Core Admin 索引库管理
这个界面很重要,这可以使多核的配置,索引库的优化等,变得非常简单;
主要功能包括:Add Core(添加核心,即索引库),Unload(卸载核心),Rename(重命名核心),Optimize(优化索引库)。如我这里是三个核心。
4)Java Properties java属性
Java和tomcat一些属性信息,jdk版本信息等等
5)Thread Dump 中可以看到你的JVM 中的所有活动线程的Thread Dump
3.Core selector核心选择器
每个核心中有大量核心相关页面。这些核心相关页面允许你做下面的事情:
1)查看核心相关的属性,例如,你可以在主核心(例如,core0)页面查看到 Lucene segments 的数量等基本信息。
2)从 Analysis 分析文本内容;
此处可以分析你所配置的分词器是否生效,可以选择已经配置分词的字段,输入一句话,Analyse Values可以查看是否分词;
3)使用 Query 执行查询。
Query操作说明
Solr search query using rest API:
http://localhost/solr/#/core0/query?fq=title:内部&start=0&rows=10&fl=from,tos,title,content&sort=id desc
一个简单的查询实例:
查询含有“内部”值得title字段,每页显示10条数据,回显字段为from,tos,title,content,按id降序,;
查询获得的结果,可以选择输出的类型,比如json;
{
"responseHeader": { "status": 0, "QTime": 2 }, "response": { "numFound": 1, "start": 0, "docs": [
{ "title": "内部推荐重磅来袭", "content": "\n亲爱的小伙伴:\n\n你有火眼金睛吗?你身边有汗血宝马吗?\n赶快领着你的千里马来报到吧~~\n本期人力资源部特意为大家送上多个职位,机会难得,还不赶紧看过来!\n\n只要推荐朋友加入,就能获得800RMB―1500RMB的金额奖励哦,放肆推吧!\n\n \n\n\n \n本周我们需要这些岗位de银:\n \n1.渗透测试工程师\n2.高级PHP开发工程师\n3.逆向工程师\n4.App技术经理\n5.市场策划经理\n6.销售经理\n\n(任职要求和岗位内容详见附件)\n\n\n推荐成功你可以获得:\n\n职务\n奖金(RMB)\n初级岗位\n800\n中级岗位\n1000\n高级岗位\n1500\n \n注:公司管理层以及招聘组员工不享受此奖励\n\n \n推荐方式在这里:\n\n内部推荐简历接收邮箱联系人:杨慧\n联系电话:\n\n \n奖励方式是酱婶儿的:\n被推荐候选人被公司成功录用且通过试用期考核,推荐人即可获得相应奖金\n \n我们还设有:\n1.年度铜牌伯乐奖\n截止在本自然年年底推荐成功4-5名及以上员工(转正且在职) 可获得奖金4888元\n\n2.年度银牌伯乐奖\n截止在本自然年年底推荐成功6-7名及以上员工(转正且在职) 可获得奖金6666元\n\n3.年度金牌伯乐奖\n截止在本自然年年底推荐成功8名及以上员工(转正且在职) 可获得奖金8888元\n\n\n憋犹豫了,小伙伴们,快快响应号召,喊上兄弟来永信至诚,让世界看到你的影响力吧!\n \n本期没有获得内推机会的童鞋也不要灰心,永信至诚内推政策正式启动了,更多职位招聘消息,请关注后续公告邮件。\n \n\n \n人力资源部\n 2016年4月12日",
"from": "\"[email protected]\" <[email protected]>", "tos": [ "all <[email protected]>" ] } ]
}
}
返回类型:查询后结果集类型,默认类型为json,在请求中可以设置返回类型
请求连接:http://localhost/solr/#/core0/?为默认实例参数
描述:每个参数的实际作用描述
返回类型 |
请求连接 |
描述 |
json |
fl=title,id |
是逗号分隔的列表,用来指定文档结果中应返回的 Field 集。默认为 “*”,指所有的字段。 |
json |
defType=lucene |
指定query parser,常用defType=lucene, defType=dismax, defType=edismax
|
json |
qf=content |
query fields,指定solr从哪些field中搜索。 |
json |
Pf=参数 |
用于指定一组field,当query完全匹配pf指定的某一个field时,来进行boost。 |
json |
fq=参数:查询内容 |
filter query,过虑查询。 |
json |
mm=AND |
minimal should match。Solr支持三种查询clause,即“必须出现”, “不能出现”和“可以出现”,分别对应于AND, -, OR。 在默认情况下,使用OR这个clause。mm用于设置在使用OR这个clause时,需要出现最少的满足条件的clause数量。 |
xml |
wt=xml |
writer type,指定输出格式,可以有 xml, json, php,ruby等。 |
json |
df=title |
默认的查询字段title。 |
json |
qt=standard |
query type,指定那个类型来处理查询请求,一般不用指定,默认是standard。 |
|
|
|
4)Solrt通过url方式删除数据
Update操作说明
发送请求:
http://localhost:8080/solr/update/?stream.body=
<delete><id>id值</id></delete>&stream.contentType=text/xml;charset=utf-8&commit=true
返回处理结果:主要看状态码
执行正常
<response>
<lst name="responseHeader">
<int name="status">0</int>
<int name="QTime">112</int>
</lst>
</response>
执行失败,原因是请求的参数有误
<response>
<lst name="responseHeader">
<int name="status">400</int>
<int name="QTime">4</int>
</lst>
<lst name="error">
<str name="msg">
no field name specified in query and no default specified via 'df' param
</str>
<int name="code">400</int>
</lst>
</response>
根据id删除数据
根据查询参数条件删除数据
返回类型:查询后结果集类型,默认类型为json,在请求中可以设置返回类型
请求连接:http://192.168.40.11/solr/#/core0/?为默认实例参数
描述:每个参数的实际作用描述
返回类型 |
请求连接 |
描述 |
xml |
http://localhost:8080/solr/core0/update/?stream.body= <delete><id>id值</id></delete>&stream.contentType=text/xml;charset=utf-8&commit=true |
根据id值来删除索引信息 |
xml |
http://localhost:8080/solr/core0/update/?stream.body= <delete><query>参数</query></delete>&stream.contentType=text/xml;charset=utf-8&commit=true
|
根据查询条件来删除索引信息 |
stream 相关参数:
stream.file=(服务器本地文件);
stream.url 分别指到你的删除文本,这里是直接字符串内容用 stream.body参数。
commit 参数是指提交,提交了才能看到删除效果。
删除指令有两种,一是:用 <id></id>包装;二是:<query></query>包装。指令都很明显,一个是 id值(是在 schema.xml的 uniqueKey所指字段的值,而不是索引内部的 docId);query值是查询串,如:title:"solr lucene"。