一、solrConfig 結構
二、<lib>:
<lib/> 標籤主要用來引用 jar 包或插件。如果是相對路徑那麼則是相對於實例目錄( Core 目錄 )。需要注意的是 <lib/> 標籤是根據其在 SolrConfig.xml 文件中定義的順序從上往下依次執行的,所以如果引入的 JAR 包 A 依賴於 B,那麼 A 應該定義在 B 下面。該標籤下有兩個屬性:
1、dir:用來指定文件目錄
2、regex:正則表達式。用來給定需要加載的 jar 包的條件
如果僅僅給出 dir 屬性,那麼代表 dir 指定目錄下的全部 jar 包都要加載。我們也可以通過絕對路徑來指定目錄,但是如果指定的目錄沒有找到,系統會報錯。
三、<dataDir>: 標籤用於用戶自定義 Solr 索引數據和日誌的存放位置,默認情況下,索引文件存在 Solr_home 下的 data 文件夾中。該參數可以是一個絕對路徑或者是相對於當前 Servlet 的容器位置。
四、<directoryFactory>:規定了索引存儲方案
1. solr.StandardDirectoryFactory,這是一個基於文件系統存儲目錄的工廠,它會試圖選擇最好的實現基於你當前的操作系統和Java虛擬機版本
2. solr.SimpleFSDirectoryFactory,適用於小型應用程序,不支持大數據和多線程
3. solr.NIOFSDirectoryFactory,適用於多線程環境,但是不適用在windows平臺(很慢),是因爲JVM還存在bug
4. solr.MMapDirectoryFactory,這個是solr3.1到4.0版本在linux64位系統下默認的實現。它是通過使用虛擬內存和內核特性調用 mmap 去訪問存儲在磁盤中的索引文件。它允許 lucene 或 solr 直接訪問I/O緩存。如果不需要近實時搜索功能,使用此工廠是個不錯的方案。
5. solr.NRTCachingDirectoryFactory,此工廠設計目的是存儲部分索引在內存中,從而加快了近實時搜索的速度
6. solr.RAMDirectoryFactory,這是一個內存存儲方案,不能持久化存儲,在系統重啓或服務器crash時數據會丟失。且不支持索引複製
五、<codeFactory>:編解碼工廠允許使用自定義的編解碼器
六、<schemaFactory>:
七、<indexConfig>:用於設置索引的低級別屬性
八、<jmx>:
九、<updateHandler>:更新處理器,主要用來支持事務提交,日誌,持久化,Solr 雲和一些事件監聽等。
十、<query>:設置查詢執行行爲,主要是緩存的利用,查詢結果分頁等。
十一、<requestDispatcher>:規定了請求如何被解析。
十二、<requestHandler>:將請求與處理類進行匹配
十三、<searchComponent>:搜索組件,高亮顯示組件,查詢視圖組件等等。
十四、<updateRequestProcessChain>:用於攔截更新請求,進行其他操作(類似於監聽)
十五、<queryResponseWriter>:控制返回結果的顯示
十六、<queryParser>:查詢解析器
十七、<valueSourceParser>:函數解析器
十八、<transformer>:文檔轉換器