MySQL のフルテキストを使用して混乱することはほとんどありません。utf-8
文字セットが設定され、照合が設定されているデータベースがありますutf8_unicode_ci
商品検索の流れは以下の通りです。ユーザーは以下のフローから選択して製品を検索します
- ユーザーは product_type を選択し、値が消耗品/非消耗品の列挙型フィールドです。
- 次に、product_nature、enum 0=>finished 1- unfinished を選択します。
- ユーザーが場所を選択すると、varchar ユーザーは複数の場所を選択できます。
- 次に、ユーザーが価格帯などを指定します (さらに 5 つほど選択します) 検索ページでユーザーが入力するのは、場所、価格帯だけです。コンボから選択したすべてを休ませます。
私の混乱はです。
- 私のデータベースは全文検索をサポートしていますか?
- 全文検索を有効にするためにインデックスを作成する必要があるフィールドは何ですか?
- 全文はデータ型フィールドでのみサポートさ
varchar
れています。text
ユーザーがフィルター用に選択した多くのフィールドが含まれている場合に関連する結果を取得する方法enum
- 上記のように、ユーザーが選択したフィルターに応じて、完全に一致する製品とほぼ一致する製品を表示したいと考えています。タイプのフィールドが多数あるため、ここではフルテキストの関連性による順序付けは機能しますか
enum
。
編集 例をよりよく理解するために
この検索は、何を買うべきかは知っているが、それ以外は何も知らないという特別な人のためのものです。携帯電話が必要なようですが、他に何も知りません。コンボからそのタイプ (Wifi/Wi-Fi なし) を選択し、カメラ (あり/なし) を選択し、このような他のいくつかの機能を選択します。次に、手頃な価格帯を指定し、特定の場所の店舗で電話を入手できるようにします。このために、私はタイプしlocation A, location B, location C
ます。これらの場所のいずれかに基づく結果が必要です。そして、指定された検索パラメーターの最も近い一致に従って結果を並べ替えたいと思います。最も近い一致に完全に一致し、最も近い一致が最も少なくなります。お役に立てれば
誰かがこれに光を当てることができますか?
ありがとう