Laravel:使用多個關鍵字對多列進行搜索,按相關性排序
問題:
問題:在Laravel 中實現搜索,根據三個輸入關鍵字從多個列中檢索資料。搜尋結果應按相關性排序,包含所有三個關鍵字的行排名最高,其次是僅包含前兩個關鍵字的行,最後是僅包含第一個關鍵字的行。
解決方案:要按所需順序查找行,我們首先查詢與 meta_name 或 meta_description 列中的所有三個關鍵字匹配的帖子。此查詢進入 $all 變數。
接下來,我們查詢僅與同一列中的前兩個關鍵字相符的貼文。此查詢進入 $twoWords 變量,我們排除 $all 中已找到的帖子的 ID。
最後,我們查詢僅與任一列中的第一個關鍵字匹配的帖子,再次排除 $all 中找到的 ID和 $twoWords。此查詢進入 $oneWord 變數。
為了獲得最終的有序搜尋結果,我們合併所有三個查詢結果($all、$twoWords、$oneWord)並將其分配給 $posts 變數。 檢索搜尋結果的程式碼如下:以上是如何在 Laravel 中實現跨多列的相關性排序搜尋?的詳細內容。更多資訊請關注PHP中文網其他相關文章!