專為搜尋而設計的高度靈活、可擴展、容錯的文檔攝取系統。
建造是在以下機構善意捐贈的基礎設施上運作的
通常,搜尋項目首先會手動向搜尋引擎提供一些文檔,通常是透過 Solr 內建的「僅用於測試」的處理功能(例如 SolrCell 或 post.jar)。記錄並包含這些功能是為了幫助用戶了解他們可以透過最少的痛苦設定來使用 Solr 做什麼。
這很好,初次探索就該如此。不幸的是,這也是一個潛在的陷阱。
很多時候,不太了解的使用者可能會被參考手冊中記錄的這些介面所誤導(並假設任何記錄的內容都必須是「正確的方式」),從而繼續開發他們的搜尋系統透過自動化使用這些相同的接口。公平地對待這些用戶,一些舊版本的 Solr 參考指南未能識別介面的「僅用於測試」性質,有時是因為社群花了一段時間才意識到與之相關的陷阱。
不幸的是,大規模攝取文件進行搜尋並非易事,而且這些索引介面並不適合生產使用。通常的結果是,它對於小型測試語料庫工作“正常”,然後在較大的生產語料庫上變得不穩定。為輸入此類介面而編寫的程式碼通常需要針對多種類型的文件或多種文件格式重複,並且很容易導致常見功能的重複以及剪下和貼上複製。此外,在投入大量工程技術以使此類解決方案在大型語料庫上運行之後,他們發現的下一件事是,如果索引中途失敗,他們將無法恢復。在最壞的情況下,故障與語料庫的大小有關,隨著語料庫的增長,故障變得越來越常見,直到完成和索引運行的機會很小,如果允許問題,系統最終根本無法索引或升級潰爛。結果是一系列可怕、痛苦且可能代價高昂的成長煩惱。
JesterJ 致力於讓您輕鬆開始使用強大的全功能索引基礎設施,這樣您就不必重新發明輪子。 JesterJ 是一個在您處理大量文件之前不需要放棄的系統(希望到那時您已經獲得了可觀的利潤,可以支付大型客製化解決方案的費用!)。提供了各種可重複使用的處理元件,編寫您自己的自訂處理器就像遵循一些簡單的指導原則實作 4 方法介面一樣簡單。
通常,用於將文件索引到 Solr 或其他搜尋引擎的系統的第一個版本是相當線性和直接的,但隨著時間的推移,功能和增強功能通常會增加複雜性。有時,系統從一開始就很複雜,可能是因為搜尋被添加到現有系統中。 JesterJ 旨在處理複雜的索引場景。考慮以下假設的索引工作流程:
JesterJ 使用單一集中處理計劃來處理此類場景,並將確保如果系統被拔掉,您不會收到有關收到訂單的第二條訊息。 JesterJ 的預設模式是確保未標記為安全或冪等的步驟最多傳遞一次。安全步驟沒有外部影響,且冪等步驟可以在到達最終處理端點的途中重複。
請參閱網站和文件以獲取更多信息
請參閱 wiki 中的文檔
目前版本:1.0-Beta3。這是最好用的版本,並且應該具有大部分功能。 (已知問題:#189)
下一個版本: 1.0-Beta4將很快發布,如果兩週內沒有發現嚴重問題,1.0將發布。
注意:目前程式碼和即將發布的 1.0 版本針對可由單一機器提供服務的任何設計和負載。 JesterJ 明確設計為利用具有多個處理器的機器。您可以透過重複最慢的步驟來設計您的計劃,以緩解瓶頸。每個重複項都意味著有一個額外的執行緒在該步驟上工作。 1.1 計畫自動擴展線程,跨多台機器擴展是 2.x 版本的關鍵優先事項。像往常一樣,如果您希望盡快獲得這些功能,請開始討論並在可能的情況下貢獻 PR!
目前僅定期測試 JDK 11。 JDK 11 的任何發行版都應該可以運作。計劃在未來版本中支援 Java 17 和未來的 LTS 版本。
在 Discord 上討論功能、提出問題等:https://discord.gg/RmdTYvpXr9
在此版本中,我們具有以下功能
~/.jj/cassandra
1.0 版旨在用於單節點系統,因此適合用於中小型專案(數千萬或可能是數億個文件)。
我們的問題頁面上的里程碑過濾器可以隨時對未來版本中的內容進行最佳猜測