您可能已經知道 Joomla 具有滿足現代需求的內建搜尋功能 - 智慧搜尋元件。但如果您的用戶需要更多一點怎麼辦?如果您希望第三方擴充功能也可搜尋怎麼辦?在本系列文章中,我們將了解如何為第三方 Joomla 元件建立智慧搜尋外掛程式。
歷史上,Joomla 核心中有 2 個搜尋元件:「搜尋」和「智慧搜尋」。 Joomla 1.x 中包含了一個簡單的搜索,此後沒有發生重大變化。為了讓這個組件(com_search)不僅僅在核心組件中進行搜索,需要編寫一個插件,其本質主要是給組件必要的SQL查詢,形成一個組件可以理解的結構的對象從查詢結果來看。搜尋本身本質上是使用 LIKE '%word%' 對資料庫進行 SQL 查詢。也有在簡單的搜尋外掛的幫助下使用 Joomla 中的 Sphinx 搜尋引擎的情況。
從 Joomla 2.5 開始,智慧搜尋元件 com_finder 被包含在核心中,它與簡單搜尋的主要區別是內容索引。搜尋本身開始根據內容的相關性產生結果。對於網站使用者來說,出現了搜尋參數,允許您使用基於各種參數的篩選器來限制結果:出版的開始和結束日期、語言、類型(文章、類別、產品等)、特定類別、作者。在底層,文本被劃分為標記,計算標記的權重等。索引設定可在組件設定中使用。
Joomla 為網站訪客提供的智慧搜尋提示範例:
在搜尋表單中輸入這個和那個,將傳回包含「這個」和「那個」的結果。
的結果
在搜尋表單中輸入 this not that 將傳回包含 「this」而非「that」.
的結果 在搜尋表單中輸入這個或那個將返回包含「這個」或「那個」。
的結果 在搜尋表單中輸入「這個和那個」(帶引號)將返回包含確切短語「這個和那個」。
我想再次指出,這是 Joomla 核心的功能,而不是第三方擴展,也不是某種第三方(通常是付費的)服務。
在實踐中,我發現網站訪客通常不會使用所有這些附加過濾器和搜尋參數,而是再次詢問以澄清查詢。在包含文章的常規網站上,不太可能需要搜尋參數,但在內部封閉的幫助系統或文件系統中(Joomla 有文章和工作流程的版本控制,請參閱docs.joomla.org 上的詳細資訊)這些參數會更多需求。
您的迷你Google的索引需要定期更新,因為即時網站上的內容不斷變化:新增、存檔、刪除產品和文章、更新聯絡人等。為了讓使用者接收到- 在搜尋最新資料時,您需要定期重新索引內容。索引結果儲存在資料庫中,這就是它的大小增加的原因。對於此搜尋實作來說,這是正常的。
您可以從管理面板手動開始索引
或(這是首選選項)使用 Joomla CLI 伺服器命令列。為此,請轉到網站的 cli 資料夾(有關如何使用 Joomla CLI 的更多信息,請參閱文章 Joomla 4:強大的 CLI 應用程式)。
Joomla 中的 CLI 資料夾。
在此資料夾中,執行命令:
php joomla.php finder:index
Joomla 可以很快為您的內容建立索引。
透過 CLI 在 Joomla 5 中進行智慧搜尋索引。
我們將此命令添加到 CRON 中以安排執行,網站訪客將很高興看到當前的搜尋結果。
0 2 * * * php /path/to/site/public_html/cli/joomla.php finder:index >/dev/null 2>&l
Joomla 使用者欄位用於多種類型的網站,通常用於不需要線上付款和網站交付計算的服務或商品目錄。為了讓 Joomla 以這些欄位的值進行搜索,您需要為每個欄位指定「搜尋索引」參數(最底部的「選項」標籤):
您還可以查看文章在智慧搜尋和 JFilters 的結果中新增自訂字段,其中介紹如何使用佈局覆蓋在搜尋結果中顯示字段值。
分類 是一種在搜尋結果中顯示欄位資料的方式,例如「類別:任何類別」、「作者:任何作者」。分類法可以嵌套。若要按欄位值搜索,請選擇「設為可搜尋」或「設為可搜尋並新增為分類法」選項。
Joomla 智慧搜尋中的分類範例。
在下一篇文章中,我們將以 JoomShopping 為例,了解如何為 Joomla 元件建立智慧搜尋外掛程式。我們將開始遇到可能阻礙我們的細微差別和細節,但最終我們將克服所有困難並為 Joomla 5 創建一個可用的智慧搜尋插件。
以上是Joomla 藝術簡介中智慧搜尋的剖析。的詳細內容。更多資訊請關注PHP中文網其他相關文章!