solr原理詳解

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 的文檔;按查詢刪除將刪除查詢返回的全部文檔。   
一個典型的Add請求報文 Xml代碼  
1. <add>   
2.   <doc>   
3.     <field name="id">TWINX2048-3200PRO</field>   
4.     <field name="name">CORSAIR  XMS 2GB (2 x 1GB) 184-Pin DDR S
DRAM Unbuffered DDR 400 (PC 3200) Dual Channel Kit System Memory - Retail</field>   
5.     <field name="manu">Corsair Microsystems Inc.</field>   
6.     <field name="cat">electronics</field>   
7.     <field name="cat">memory</field>   
8.     <field name="features">CAS latency 2, 2-3-3-6 timing, 2.75v
, unbuffered, heat-spreader</field>   
9.     <field name="price">185</field>   
10.    <field name="popularity">5</field>   
11.    <field name="inStock">true</field>   
12.  </doc>   
13.  <doc>   
14.    <field name="id">VS1GB400C3</field>   
15.    <field name="name">CORSAIR ValueSelect 1GB 184-Pin DDR SDRA
M Unbuffered DDR 400 (PC 3200) System Memory - Retail</field>   
16.    <field name="manu">Corsair Microsystems Inc.</field>   
17.    <field name="cat">electronics</field>   
18.    <field name="cat">memory</field>   
19.    <field name="price">74.99</field>   
20.    <field name="popularity">7</field>   
21.    <field name="inStock">true</field>   
22.  </doc>   
23.</add>     
一個典型的搜索結果報文: Xml代碼  
1. <response>   
2.     <lst name="responseHeader">   
3.         <int name="status">0</int>   
4.         <int name="QTime">6</int>   
5.         <lst name="params">   
6.             <str name="rows">10</str>   
7.             <str name="start">0</str>   
8.             <str name="fl">*,score</str>   
9.             <str name="hl">true</str>   
10.            <str name="q">content:"faceted browsing"</str>   
11.        </lst>   
12.    </lst>   
13.   
14.    <result name="response" numFound="1" start="0" maxScore="1.058217">   
15.        <doc>   
16.            <float name="score">1.058217</float>   
17.            <arr name="all">   
18.                <str>http://localhost/myBlog/solr-rocks-again.h
tml</str>   
19.                <str>Solr is Great</str>   
20.                <str>solr,lucene,enterprise,search,greatness</str>   
21.                <str>Solr has some really great features, like 
faceted browsing and replication</str>   
22.            </arr>   
23.            <arr name="content">   
24.                <str>Solr has some really great features, like 
faceted browsing and replication</str>   
25.            </arr>   
26.            <date name="creationDate">2007-01-07T05:04:00.000Z</date>   
27.            <arr name="keywords">   
28.                <str>solr,lucene,enterprise,search,greatness</str>   
29.            </arr>   
30.            <int name="rating">8</int>   
31.            <str name="title">Solr is Great</str>   
32.            <str name="url">http://localhost/myBlog/solr-rocks-again.html</str>   
33.        </doc>   
34.    </result>   
35.   
36.    <lst name="highlighting">   
37.        <lst name="http://localhost/myBlog/solr-rocks-again.html">   
38.            <arr name="content">   
39.                <str>Solr has some really great features, like 
<em>faceted</em>   

40.                <em>browsing</em> and replication</str>   
41.            </arr>   
42.        </lst>   
43.    </lst>   html

44.</response>  electron

相關文章
相關標籤/搜索