1

空港を説明するエントリを含む MySQL MyISAM テーブルがあります。このテーブルには、コード、名前、およびタグの 3 つの varchar 列が含まれています。

code は空港のコード (JFK や ORD など) を参照し、name は空港の名前 (John F Kennedy や O'Hare など) を参照し、tag は空港に関連付けられているタグのセミコロン区切りのリスト (NYC や New York など) を指定します。 ;およびシカゴ;)。

コード、名前、またはタグのいずれかで (オートコンプリートのために) 空港を検索できるようにする必要があるため、(コード、名前、タグ) に FULLTEXT インデックスを設定します。

これまでに FULLTEXT で 2 つの問題が発生したため、作業ができませんでした:
1. 部分一致を行う方法はありません - 後置一致のみです (これは本当ですか?
)照合する用語によって、照合の動作が異なります。ピリオドは特別な方法で解析されていると想定しています。たとえば、NYC で FULLTEXT 検索を実行しても JFK は返されませんが、New York で同じ検索を実行すると JFK は返されます。

これらの障壁を克服する方法はありますか?それ以外の場合は、代わりにマッチングを検討する必要がありますlikeか、それともまったく異なるストレージ エンジンを検討する必要がありますか? ありがとう!

4

1 に答える 1

1

私が思いついた最善の解決策は、FULLTEXT と同様のマッチングの両方を使用し、結果に UNION を使用することです。

于 2012-04-12T16:16:41.723 に答える