1

キーワード検索機能を効率的に提供するデータ構造をまとめる必要があります。

私の指標は次のとおりです。

  1. 約500,000製品。
  2. 製品ごとに約 20 以上のキーワード (推測)。
  3. 商品は10桁程度のIDで識別されますが、今後はASCIIコードでも構いません。

可能であれば、データ構造をメモリに収めるようにしたいと思います。私はサーバー上にいるので、メモリの可用性がかなり高いと想定できます。

スピードは重要です。データベース クエリを使用LIKEすることは、受け入れられるソリューションではありません。

データ構造のアイデアはありますか?

私の考え:

トライマップ

キーワードに対しては非常に効率的ですが、製品 ID のリストが葉にぶら下がっている必要があるため、メモリを大量に消費します。それを助けることができるアイデアはありますか?

圧縮

さまざまな圧縮スキームが思い浮かびますが、重要な価値があるものはありません。

他の誰かがこのようなものをまとめましたか?あなたの経験を共有していただけますか?

データは変更される可能性がありますが、頻繁ではありません。変更に対応するために、構造を毎日再構築することは合理的です。

4

1 に答える 1

2

メモリ内またはファイル システム インデックスとしてluceneを使用することを考えたことはありますか?

これは非常に高速であり、将来発生する可能性のあるさらなる要件に対応する余地がたくさんあります。

于 2012-04-07T00:18:04.747 に答える