クライアントのために取り組んでいるオートコンプリート検索ボックスがあります。データベースは SQL Server にあり、大量のデータ セットがあります。
データベースに対して標準の LIKE クエリを実行できましたが、これはそれほど問題ではありませんが、クライアントからいくつかの要件がありました。
検索キーワードが「ロンドン空港」だとしましょう
表示される結果には、一定の優先順位が必要です。優先基準は次のとおりです。
- London と Airport が一致する結果が一番上に表示される必要があります。例:ロンドン空港、ロンドンメイン空港など
- 都市フィールドと一致するため、London の結果が続く必要があります。
- 空港はカテゴリ部分であるため、その後に続きます。
要件は、実際には最初に英国の結果を含めることですが、私はすでにそれを処理しています.
テーブルが
空港名 | 国 | 都市 | geo_id など。
キーワードを結果のテーブル行に分割するテーブル関数を作成し、LIKE '% split_table.result %' のようなクエリを実行しました。
問題は 1 番目の基準でもあります。上記のアプローチは OR クエリを実行しており、ロンドンと空港のみの結果を表示しています...ここで AND クエリを実行したいので、分割テーブル関数を使用できれば幸いです。作成しました。
これらの優先順位を設定する方法について、いくつかのアイデアが必要です。
私は本当にいくつかの助けを適切にしたいと思います。