翻譯自 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這些功能中,這樣不需要便利這個索引,就能完成一些操作,類似於正排的一些信息。