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

Barbara Streisand
發布: 2024-11-05 21:55:02
原創
130 人瀏覽過

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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!