キーワード検索機能を効率的に提供するデータ構造をまとめる必要があります。
私の指標は次のとおりです。
- 約500,000製品。
- 製品ごとに約 20 以上のキーワード (推測)。
- 商品は10桁程度のIDで識別されますが、今後はASCIIコードでも構いません。
可能であれば、データ構造をメモリに収めるようにしたいと思います。私はサーバー上にいるので、メモリの可用性がかなり高いと想定できます。
スピードは重要です。データベース クエリを使用LIKE
することは、受け入れられるソリューションではありません。
データ構造のアイデアはありますか?
私の考え:
トライマップ
キーワードに対しては非常に効率的ですが、製品 ID のリストが葉にぶら下がっている必要があるため、メモリを大量に消費します。それを助けることができるアイデアはありますか?
圧縮
さまざまな圧縮スキームが思い浮かびますが、重要な価値があるものはありません。
他の誰かがこのようなものをまとめましたか?あなたの経験を共有していただけますか?
データは変更される可能性がありますが、頻繁ではありません。変更に対応するために、構造を毎日再構築することは合理的です。