Solr服务原理。
来源:互联网 发布:辉煌seo 编辑:程序博客网 时间:2024/05/29 18:50
Solr对外提供标准的http接口来实现对数据的索引的增加、删除、修改、查询。在Solr中,用户通过向部署在servlet容器中Solr Web应用程序发送HTTP请求来启动索引和搜索。Solr接受请求,确定要使用的适当SolrRequestHandler,然后处理请求。通过HTTP以同样的方式返回响应。默认配置返回Solr的标准XML响应,也可以配置Solr的备用响应格式。
索引
可以向Solr索引servlet传递四个不同的索引请求:
- add/update允许向Solr添加文档或更新文档。直到提交后才能搜索到这些添加和更新。
- commit告诉Solr,应该使上次提交以来所做的所有更改都可以被搜索到。
- optimize重构Lucene的文件以改进搜索性能。索引完成后执行一下优化通常比较好。如果更新比较频繁,则应该在使用率较低的时候安排优化。一个索引无需优化也可以正常的运行。优化是一个耗时较多的过程。
- delete可以通过id或查询来指定。按id删除将删除具有指定id的文档;按查询删除将删除查询返回的所有文档。
要实现添加文档索引则只需要调用搜索接口以HTTP POST的方式提交XML报文。(索引接口:http://192.168.10.85:18080/solr/update),下面是添加文档的示例报文:
注:多核心时为这个地址http://192.168.10.85:18080/solr/core0/update/
<add>
<doc>
<field name = "id">TWINX2048-3200PRO</field>
<field name = "name">CORSAIR XMS 2GB(2 x 1GB) 184-Pin DDR SDRAM Unbuffered DDR 400 (PC 3200) Dual Channel Kit System Memory - Retail</field>
<field name = "manu">Corsair Microsystems Inc</field>
<field name = "cat">electronics</field>
<field name = "cat">memory</field>
<field name = "features">CAS latency 2,2-3-3-6 timing,2.75v,unbuffered,heat-spreader</field>
<field name = "price">185</field>
<field name = "popularity">5</field>
<field name = "inStock">true</field>
</doc>
<doc>
<field name = "id">VS1GB400C3</field>
<field name = "name">CORSAIR ValueSelect 1GB 184-Pin DDR SDRAM Unbuffered DDR 400 (PC 3200) System Memory - Retail</field>
<field name = "manu">Corsair Microsystems Inc</field>
<field name = "cat">electronics</field>
<field name = "cat">memory</field>
<field name = "price">74.99</field>
<field name = "popularity">7</field>
<field name = "inStock">true</field>
</doc>
</add>
搜索
要实现搜索则只需要调用搜索接口发送HTTP GET,示例:
http:192.168.10.85:18080/solr/select?indent=on&version=2.2&q=solr&start=0&rows=10&fl=*%2Cscore&qt=standard&wt=standard
注:多核心时为这个地址:http://192.168.10.85:18080/solr/core0/select/
示例中,查询词“ipad”的请求被提交,要求返回10个结果。
返回的搜素结果报文:
<response>
<lst name = "responseHeader">
<int name = "status">0</int>
<int name = "QTime">6</int>
<lst name = "params">
<str name = "rows">10</str>
<str name = "start">0</str>
<str name = "fl">*.score</str>
<str name = "hl">true</str>
<str name = "q">content:"faceted browsing"</str>
</lst>
</lst>
<result name = "response" numFound = "1" start = "0" maxScore = "1.058217">
<doc>
<float name = "score">1.058217</float>
<arr name = "all">
<str>http://localhost/myBlog/solr-rocks-again.html</str>
<str>Solr is Great</str>
<str>solr,lucene,enterprise,search,greatness</str>
<str>Solr has some really great features, like faceted browsing and replication</str>
</arr>
<arr name = "content">
<str>Solr has some really great features, like faceted browsing and replication</str>
</arr>
<date name = "creationDate">2017-01-07T05:04:00.000Z</date>
<arr name = "keywords">
<str>solr,lucene,enterprise,search,greatness</str>
</arr>
<int name = "rating">8</int>
<str name = "title">Solr is Great</str>
<str name = "url">http://localhost/myBlog/solr-rocks-again.html</str>
</doc>
</result>
<lst name = "highlighting">
<lst name = "http://localhost/myBlog/solr-rocks-again.html">
<arr name = "content">
<str>Solr has some really great features,like<em>faceted</em><em>browsing</em> and replication</str>
</arr>
</lst>
</lst>
</response>
- Solr服务原理。
- Solr服务原理(索引)
- solr服务
- Solr原理
- Solr配置搜索服务
- 【总结】搜索服务Solr
- solr服务搭建
- solr服务搭建
- Solr服务的搭建
- Solrj连接Solr服务
- Solr 全文搜索服务
- 一、solr服务搭建
- Solr服务的搭建
- Solr服务的搭建
- Solr 分布式分发原理
- solr replication原理探究
- solr原理详解
- solr原理详解
- 徒手创建一个webpack全自动生产与发布分离的环境
- 按指定列排序 dataframe sort_values
- python3 文件系统 open, close, write 方法
- 嵌入式linux面试题解析(三)——Linux应用编程部分一
- np.random.randint产生一个范围内的数据
- Solr服务原理。
- 卷积神经网络中feature map的含义
- 手把手教给你搭建Vue的环境
- Android逆向之利用lua动态替换java中方法
- mysql与mysqli的区别与用法
- centos7下安装mysql
- Java基础总结
- CoreData谓词使用
- 图解SQL的Join