検索可能な比較的単純な階層タグ付けシステムを作成しようとしています。現時点での仕組みは次のとおりです。これは MySQL テーブル構造です。
--------------------------------------------
id | tag | parentID | topParentID |
--------------------------------------------
1 | Boston | NULL | NULL |
--------------------------------------------
2 | Events | 1 | 1 |
--------------------------------------------
3 | June 30th | 2 | 1 |
--------------------------------------------
4 | NYC | NULL | NULL |
--------------------------------------------
5 | Attractions | 4 | 4 |
--------------------------------------------
したがって、ユーザーが検索バーに「ボストン」と入力すると、「ボストン イベント」および「ボストン イベント 6 月 30 日」という候補が表示されます。同様に、検索バーに NYC と入力すると、「NYC アトラクション」が候補として表示されます。
また、検索バーに「イベント」と入力すると、「ボストン イベント」という候補が表示されます。6 月 30 日と入力すると、「ボストン イベント 6 月 30 日」という候補が表示されます。
これを行うためにコードをいじりました。クエリ文字列をキーワードに分割し、各キーワードのタグテーブルを検索して一致を返すことは間違いありませんが、完全なタグ文字列を返す正しい方法が見つかりませんでした私が上で述べた形式。