2016-05-11 12 views
-1

私は以下の機能を持つサイト、イベント、ページ、ユーザーを持っています。"{{Entity1}} {{Action}} {{Entity2}}"のような事前検索を実装する最良の方法は何ですか?

現在、グループ名、イベント名、ページ名、ユーザー名に関する通常の検索は、説明や投稿でも機能しています。

しかし、私は、誰かが検索した場合のようないくつかのスマートな検索を実装する:

"Robert from New York" - it will return all users from new york whose name is robert 

"Artist from London" - it will return all users who writes artists in their profession and city is London 

"Developer in Google" - it will return all users who works puts writes developer in their profession and google in comapny 

"Groups for Entertainment" - it will return all groups which is under Entertainment category 

私は9月をしました。カテゴリ、都市、企業、グループ、イベント、ユーザー、ページ、およびアクションのためのテーブル。

私はこのようなことをするための最良の方法と最速の方法を望んでいます。これは、パフォーマンスが良く、今後拡張される可能性のある方法があれば簡単に実装できます。事前に

多くの感謝:)

私もフィールドで、このために、検索する前に1以上のテーブルを置くために計画されました:名前とタイプ、名前は何でも構いませんし、タイプのようなものになります:ユーザー、スキルを、指定、会社名、都道府県、グループ

答えて

0

検索文字列でこれを行うことができます。

  1. 「から 『「中」を検索し、文字列の最初の』ため」。(、名前が競合しないように、スペースを持っている必要があります)
  2. ステップ1の結果に基づいて、にあなたの文字列を分割2つの部分。たとえば、 "Robert from New York"は配列( "Robert"、 "New York")になります
  3. ステップ1および2に基づいて、それぞれのテーブルを検索します。ステップ2は、指定で検索される最初の値(アーティスト)または名前(ロバート)を入力し、2番目の値を入力します。
  4. 他のシナリオでも同じ手順を実行する必要があります。
  5. すべての可能な結果の配列を1つの配列にまとめます。グループのようなURLはグループurlを持ち、人はプロファイルurlを持ち、フロントエンドでは出力をループします。
関連する問題