アプリケーション用の新しい検索システムを作成しています。現在のアイデアは、データベースからより広い結果を取得し、ユーザーとの関連性を計算するためにクエリ緩和を使用することです。問題はアルゴリズムにあります。Nearest Neighbor Algorithm のようなものを使用することを検討していますが、使用方法が少しわかりません。
ユーザー検索に対するデータベース内のレコードの関連性 (%) を取得するにはどうすればよいですか?
この操作は、属性distanceおよびcategoryで行う必要があります。つまり、DB にクエリを実行すると、距離が 2 倍になり、親カテゴリを選択することでカテゴリが緩和されます。
例: ユーザーが最大 30 km 離れたものを検索し、カテゴリが「サッカー」である場合、DB から 60 km までのすべてのレコードと「ballSports」を取得します (次のようなツリーで: sports->fullContact ->ballSports->soccer なので、サッカー、フットボール、ラグビーなどのスポーツを取得します)。
この % も、ユーザーの属性の重みを考慮して計算する必要があります。ユーザーがカテゴリを距離よりも重要であると考える場合、関連性を計算する際にこれを考慮する必要があります。
カテゴリ ツリーと距離を計算する式の良い例は、3 ページにあります。
その式を属性に適用するにはどうすればよいですか? ところで、私は MongoDB を使用しているため、すべてのデータがドキュメント内にあり、他のテーブルとは関係ありません。
ありがとうございました