我在處理多個關鍵字和根據相關性查詢數據庫時遇到問題。我想搜索每一行,如果每行匹配的關鍵字超過1個(根據我選擇的列),請首先對這些條目進行排序。如何使用多個關鍵字從數據庫中獲取和排序最相關的條目Laravel 5
我確實有一些工作,但它只是將列中的關鍵字的所有條目以特定的順序或相關性進行抽取。
拿這個工作示例:
$search_terms = array('York', 'North Yorkshire');
$properties = Property::where(function ($q) use ($search_terms) {
foreach ($search_terms as $value) {
$q->orWhere('address1', 'like', "%{$value}%");
$q->orWhere('address2', 'like', "%{$value}%");
$q->orWhere('postcode', 'like', "%{$value}%");
$q->orWhere('city_town', 'like', "%{$value}%");
$q->orWhere('county', 'like', "%{$value}%");
}
})->paginate(25);
這工作,並拉回到與存在於我的任何選定列的關鍵字的所有條目。在這種情況下,來自city_town
列的約克列和來自county
列的北約克郡列。
我需要的查詢來檢查每個單排這些關鍵字,並帶回條目時這些關鍵字的所有存在,其次是其中一個或多個出現之後(我比如現在做到這一點)。
非常感謝任何人誰可以提供幫助。
可能要考慮使用的索引服務器爲這個,而不是試圖編寫自己的。 – Pitchinnate