solr Document,Fields,Schema設計概況

翻譯自 Apache Solr Reference Guide 

 

solr一個最基本的設計原則是簡潔, 你告訴他很多信息,然後問他一些問題,他會給你回答的一段信息,你餵給他的這部分叫做 indexing, 你問他的問題叫做 query。

一個理解solr的方法是舉個例子,我們用一個美食的活頁本,每一次你加一個活頁到這本書中,你更新在最後面的索引,你列舉菜的每個成分和頁碼在最後,設想一下你加了一百個美食,你能很快找到含有豆腐這個食材的美食,用索引能非常快的找到你想要的東西相比直接一頁一頁的翻着查找。

schema就是你告訴solr 在輸入的文檔中打算用什麼做索引的。

 

solr眼中的世界是什麼樣子的。

document是solr中最基本的單元,一個美食的document可能包含這些美食的材料,需要做哪些準備,需要哪些工具,烹飪的時間等等,一個人的document可能包含這個人的名字,年齡,畢業院校等等。

在solr中,document由field組成,field可能描述信息的一些片段,鞋號可能是一個field,姓名也可能是一個field。

fields可能包含不同種類的數據。一個name field ,一般會被定義成text的,一個年齡,可能是float的,如果很好的定義這些類型,solr能夠正確的探測到他們,你的用戶會得到更好的query。

 

Field analysis

field analysis 告訴solr應該怎麼用過來的數據建索引,一個更加精確的過程可以試processing,或者digestion. 舉個例子,一個個人傳記中的內容應該都被索引,這樣你能快速找到一個對機器學習特別有研究的人,然而有些詞是你需要了解的或者說對於你根本沒有意義,比如說 你,的,好,而有的詞是比較重要的比如機器學習,這種比較有代表性的詞,solr解決這類問題的方法是你告訴solr如果這個field做切分,比如去停用詞,比如把所有的字母小寫。

 

Field Type定義和屬性

一個field的type包含以下4類信息:

1. type名字

2. 繼承類的名字

3. 如果type是TextField,定義如何分析它

4. field屬性

 

 schema api

使用rest接口可以獲取現在collection的fields的一些定義,包括dynamicfields,name ,version,uniquekey等等。

 

 DocValue

這個概念是新加進去的,方便用在sort,facet這些功能中,這樣不需要便利這個索引,就能完成一些操作,類似於正排的一些信息。

發佈了91 篇原創文章 · 獲贊 3 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章