2017-01-31 2 views
0

私はグループインデックスを持っています。グループにはの関心事(グループの目的、 '研究グループ'または 'ワインテイスティング')とそれが整理されている場所(緯度、経度)があります。ユーザーにはの関心事(複数)もあります。一致するフィールドで検索スコアを上げる

ユーザーがキーワードを使ってグループを検索した場合、興味のあるグループとユーザーの現在の場所に近いグループにスコアを付けたいと思います。

フィルタクエリと地理空間検索を使用すると、一致する関心とクエリで提供される距離に結果が限定されます。たとえば、 "ABC Group"を検索して、あなたの興味のいずれかに一致するグループがない場合、空白の結果が得られます。

私が望むのは、一致するすべてのグループを検索用語で返しますが、ユーザーの興味に最も近く、ユーザーに最も近いグループにスコアを付けます。どうすればいいのですか?ドキュメントの関連部分も参考になります。私は考えることができ

+0

ので、現在の問題は何ですか?一致する用語のクエリグループを作成し、距離と関心に応じて並べ替えます。 – Mysterion

+0

ユーザーの関心をグループに合わせて並べ替えるにはどうすればよいですか? –

答えて

1

一つの単純なアプローチは、以下の通りです:

のは、あなたがtitle:ABC groupは、距離によってソートすることは明白ですが、あなたが他の人よりも高いユーザの関心を持つグループを何とか配置する必要があるクエリを、持っているとしましょう。 should句の集合としてすべてのユーザーの関心を追加することでこれを行うことができます(異なる興味のある追加のグループを除外しません)。また、あなたはこれらの句のためにいくつかboosting(慎重に選択しなければならない係数)を適用しようとすることができます:

interest:wine^5 OR interest:study^5 OR ....など

関連する問題