ここで、Sphinx が検索を行いました。Sphinx は、タイトルとデータの 2 つのフィールドにインデックスを付けました。ユーザーが値を入力すると、関連性で並べ替えられたすべての結果を表示したい (私は思う)
例: 行 1 にはtitle
:foo
とdata
='foo bar' があります 行 2 にはtitle
='foo bar' とdata
='foo bar' があります。ユーザーが foo を入力した場合、タイトル フィールドは 100% 一致するため、行 1 を最初に表示します。
$sphinx = new SphinxClient;
$sphinx->SetServer(SPHINX_HOST,SPHINX_PORT);
$sphinx->SetLimits(0,2,1000);
$sphinx->SetMatchMode(SPH_MATCH_EXTENDED2);
$sphinx->SetFieldWeights([
'title' => 100,
'data' => 1,
]);
$sphinx->SetSortMode(SPH_SORT_RELEVANCE);
$data = $sphinx->Query('(@title_original '.$full_phrase.' | @data '.$full_phrase.') & @data cover1','index');