首頁  >  文章  >  資料庫  >  如何在 Laravel 中實現跨多列的相關性排序搜尋?

如何在 Laravel 中實現跨多列的相關性排序搜尋?

Barbara Streisand
Barbara Streisand原創
2024-11-05 21:55:02130瀏覽

How to Implement a Relevance-Ordered Search Across Multiple Columns in Laravel?

Laravel:使用多個關鍵字對多列進行搜索,按相關性排序

問題:

問題:

在Laravel 中實現搜索,根據三個輸入關鍵字從多個列中檢索資料。搜尋結果應按相關性排序,包含所有三個關鍵字的行排名最高,其次是僅包含前兩個關鍵字的行,最後是僅包含第一個關鍵字的行。

解決方案:

要按所需順序查找行,我們首先查詢與 meta_name 或 meta_description 列中的所有三個關鍵字匹配的帖子。此查詢進入 $all 變數。

接下來,我們查詢僅與同一列中的前兩個關鍵字相符的貼文。此查詢進入 $twoWords 變量,我們排除 $all 中已找到的帖子的 ID。

最後,我們查詢僅與任一列中的第一個關鍵字匹配的帖子,再次排除 $all 中找到的 ID和 $twoWords。此查詢進入 $oneWord 變數。

為了獲得最終的有序搜尋結果,我們合併所有三個查詢結果($all、$twoWords、$oneWord)並將其分配給 $posts 變數。

檢索搜尋結果的程式碼如下:
  1. 搜尋結果現在排序如下:
  2. 包含meta_name或中所有三個關鍵字的行meta_description
只包含meta_name或meta_description中前兩個關鍵字的行只包含meta_name或meta_description中第一個關鍵字的行

以上是如何在 Laravel 中實現跨多列的相關性排序搜尋?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn