diff --git a/search/utils/topic.py b/search/utils/topic.py
index 31ce55465ce874d737efa3821ef47395b028c6a7..c2224439e748c0877a2640362fe02ecdbe6ca5a1 100644
--- a/search/utils/topic.py
+++ b/search/utils/topic.py
@@ -90,7 +90,7 @@ class TopicUtils(object):
             return []
 
     @classmethod
-    def get_recommend_topic_ids(cls,user_id,offset,size,query=None,query_type=TopicPageType.FIND_PAGE,filter_topic_id_list=[]):
+    def get_recommend_topic_ids(cls,user_id,offset,size,query=None,query_type=TopicPageType.FIND_PAGE,filter_topic_id_list=[],must_topic_id_list=[]):
         """
         :需增加打散逻辑
         :remark:获取首页推荐帖子列表
@@ -200,6 +200,12 @@ class TopicUtils(object):
                 "boost_mode": "sum",
                 "functions": functions_list
             }
+            if len(must_topic_id_list) > 0:
+                query_function_score["query"]["bool"]["must"] = {
+                    "terms":{
+                        "id": must_topic_id_list
+                    }
+                }
             if query_type==TopicPageType.FIND_PAGE and len(filter_topic_id_list)>0:
                 query_function_score["query"]["bool"]["must_not"] = {
                     "terms":{
diff --git a/search/views/topic.py b/search/views/topic.py
index e3aef4773bf61cd8ed7e5a946ac23ce47b7829fc..6e5df122462df59f98abe3d0e5da27e9a52d002c 100644
--- a/search/views/topic.py
+++ b/search/views/topic.py
@@ -254,3 +254,21 @@ def query_topic_by_tag_aggregation(user_id,tag_id, offset, size):
         return {"recommend_topic_id": []}
 
 
+@bind("physical/search/query_topic_by_user_similarity")
+def query_topic_by_user_similarity(topic_similarity_score_dict, offset=0, size=10):
+    """
+    :remark 按帖子所属用户相似度召回帖子
+    :param tag_id:
+    :param offset:
+    :param size:
+    :return:
+    """
+    try:
+        must_topic_id_list = topic_similarity_score_dict.keys()
+        topic_id_dict = TopicUtils.get_recommend_topic_ids(user_id=-1, offset=offset, size=size,must_topic_id_list=must_topic_id_list)
+
+        recommend_topic_ids = topic_id_dict.keys()
+        return {"recommend_topic_ids":recommend_topic_ids}
+    except:
+        logging.error("catch exception,err_msg:%s" % traceback.format_exc())
+        return {"recommend_topic_id": []}