私は何百万もの検索エンジンクエリを次のように持っています:
Stack Overflow
Java Video Tutorials
Cars
C++ vs Java
ここで、これらの要求に適合するオートコンプリート機能を実装したいと思います。
1. Type in 'so', Prompt ['Stack Overflow','...','...']
2. Type in 'overflow', Prompt ['Stack Overflow','...']
3. Type in 'jvt', Prompt ['Java Video Tutorials','...']
...
これが私の解決策です:
1)。クエリの略語を抽出します。たとえば、Stack Overflow -> SO;
2)。クエリを接尾語に分割します。たとえば、Stack Overflow -> 'Overflow' + 'Stack Overflow';
3)。これで、「スタック オーバーフロー」の 3 つのシーケンスが得られます。
'SO','Overflow','Stack Overflow'
4)。最後に、これら 3 つのシーケンスを TrieTree にインデックス付けし、すべてのシーケンスの最後のノードで元のクエリ (またはクエリ ID) を示します。
'o' --> 'Stack Overflow'
'w' --> 'Stack Overflow'
'w' --> 'Stack Overflow'
しかし、これは複雑すぎると思います。より良い解決策がある人はいますか? 本当にありがとう !