Solr 簡介

ApacheTM Solr 是一個搜尋伺服器,建構於 Apache LuceneTM 之上,這是一個開源、基於 Java 的資訊檢索函式庫。Solr 旨在驅動強大的文件檢索或分析應用程式,這些應用程式涉及非結構化資料、半結構化資料或非結構化和結構化資料的混合。它也對有限的關聯式、圖形、統計、資料分析或儲存相關的使用案例提供次要支援。由於 Solr 是專為可擴展性設計的 Apache 2.0 授權開源軟體,因此您可以自由地針對幾乎任何商業或非商業使用案例進行調整或最佳化。

Solr 的查詢語法和剖析器提供從最簡單的關鍵字搜尋到多個欄位的複雜查詢以及分面搜尋結果的支援。摺疊叢集結果為電子商務和店面提供了引人注目的功能。串流運算式可讓您對整個語料庫、符合查詢的子集或一組文件中隨機範例進行分析。強大的數學運算式建立在串流運算式的基礎上,為進階分析和預測分析使用案例提供支柱。

也支援進階相關性調整;Solr 提供對幾乎所有 Lucene 文字分析功能的存取,包括斷詞、詞幹提取、同義詞等等,讓您可以根據對使用者和網域的了解來調整相關性。Solr 甚至允許使用學習排名功能,透過機器學習來自訂相關性。

查詢透過 HTTP 1.1 或 2.0 請求傳輸到 Solr,而回應通常是結構化文件描述符清單。在典型的範例中,會傳回 10 個描述符,每個描述符都包含一個用於尋找文件的 URL(通常呈現為「10 個藍色連結」)。但是,Solr 可以遠遠超出文件定位器,並且可能還會包含許多其他類型的文件中繼資料。彈性的結構描述設定允許幾乎任何類型的中繼資料與 Solr 中索引的文件相關聯。索引指南的結構描述元素頁面有更多關於這些選項的詳細資訊。

JSON 是預設的回應格式,但也可能是 XML、CSV、最佳化的二進位格式,或(透過自訂)您想要的任何格式。這表示各種各樣的客戶端都可以使用 Solr。這類客戶端可能是 Web 應用程式、瀏覽器、豐富的客戶端應用程式或行動裝置。任何能夠使用 HTTP 的平台都可以與 Solr 通訊。為常見程式設計語言提供多個客戶端 API

除了提供基於 Lucene 的文件檢索網路可存取引擎之外,Solr 還提供超出單一機器限制的擴展能力。索引可以使用兩種Solr 叢集類型之一進行分片和複製,以提高效能和可靠性。一種叢集類型不需要支援基礎結構,並且執行個體由管理員直接管理。第二種類型使用 Apache ZookeeperTM 來協調叢集中的管理活動。

Solr 的擴展性和高可用性功能非常有效,以至於一些最大和最著名的網站都在使用 Solr。部分使用 Solr 的網站列表(通常為自我提名)可以在 https://solr.dev.org.tw/community.html#powered-by 找到。