コード例 #1
0
# from datetime import datetime as dt
from models import UserComplete, db
#from jabber_register_user import register_user
from myfunctions import get_index_handle
# from dateutil import parser
# import time
# from get_image_size import getsizes
import time

h = get_index_handle()

def get_latlong_from_db(lobj):
	if not lobj:
		return 0, 0
	lat, lng = lobj
	if lat and lng:
		return lat, lng
	else:
		return 0, 0


def get_intersted_in_from_db(sobj):
	if not sobj:
		return 2
	if sobj == 'Male':
		return 1
	elif sobj == 'Female':
		return 0
	else:
		return 3
コード例 #2
0
ファイル: score_details.py プロジェクト: singlaripu/people
def get_score_details(id1, id2, query="DBaMlk3TGxHRW91SWhTYUlLVktZTk"):

	# print id1, id2, query, type(query)

	scores = {}

	handle = get_index_handle()
	fetch_fields=['docid', 'query_relevance_score']
	user1 = get_user(str(id1))
	user2 = get_user(str(id2))

	# print user1.name, user2.name
	scores['name'] = user1.name + " : " + user2.name

	variables = add_variables(user1)
	variables2 = add_variables(user2)

	if query=='DBaMlk3TGxHRW91SWhTYUlLVktZTk':
		new_q = 'shauniqueid:DBaMlk3TGxHRW91SWhTYUlLVktZTk'
	else:
		new_q =	map(get_field_boost, query.split())
		new_q = ' AND '.join(new_q)

	res = handle.search(
			new_q, 
			length=700, 
			scoring_function=1, 
			fetch_fields=fetch_fields, 
			variables = variables
			)['results']

	relevance = [i['query_relevance_score'] for i in res if int(i['docid']) == user2.id]
	if relevance:
		relevance = int(relevance[0])
		relevance_scr = 8.0*math.log(relevance)
	else:
		relevance_scr = 0
	# print "relevance", relevance
	# print "relevance_scr", relevance_scr
	scores['relevance_scr'] = relevance_scr

	res = handle.search(
			new_q, 
			length=700, 
			scoring_function=2, 
			fetch_fields=fetch_fields, 
			variables = variables
			)['results']	

	age = [i['query_relevance_score'] for i in res if int(i['docid']) == user2.id]
	if age:
		age = int(age[0])
		new_member_scr = math.log(2918650749 - age) - 11
	else:
		new_member_scr = 0
	# print "age", age
	# print "new_member_scr", new_member_scr
	scores['new_member_scr'] = new_member_scr

	d = {}
	q = variables

	# print variables2[7]

	d[7] = variables2[7]
	d[8] = get_relationship_wgt(user2.relationship_status)
	relationship_scr = abs(d[7]-q[7])*d[8]*2
	# print "relationship_scr", relationship_scr
	scores['relationship_scr'] = relationship_scr


	votes_scr = math.log(1+1)
	# print "votes_scr", votes_scr
	scores['votes_scr'] = votes_scr

	d[6] = variables2[6]
	interested_in_scr = min(4, abs(d[6]-q[6])*4) if d[6]+q[6]<=2 else 4
	# print "interested_in_scr", interested_in_scr
	scores['interested_in_scr'] = interested_in_scr


	d[1] = variables2[1]
	age_scr = 0 if d[1]+q[1]>=9999 else 5.0*abs(d[7]-q[7])*math.log(1 + (1.0/max(1, abs(d[1]-q[1]))))
	# print "age_scr", age_scr
	scores['age_scr'] = age_scr


	d[2] = variables2[2]
	d[3] = variables2[3]
	curr_loc_scr = 0 if d[2]+q[2]>=9999 else math.log(1 + (1000.0/max(10, km(d[2], d[3], q[2], q[3]))))
	# print "curr_loc_scr", curr_loc_scr
	# print d[2], d[3], q[2], q[3]
	scores['curr_loc_scr'] = curr_loc_scr

	d[4] = variables2[4]
	d[5] = variables2[5]
	hometown_loc_scr = 0 if d[4]+q[4]>=9999 else math.log(1 + (100.0/max(10, km(d[4], d[5], q[4], q[5]))))
	# print "hometown_loc_scr", hometown_loc_scr
	# print d[4], d[5], q[4], q[5]
	scores['hometown_loc_scr'] = hometown_loc_scr


	lv_set, lv_scr = get_lv_likes(user1.likes_set, user2.likes_set)
	# print "lv_scr", lv_scr
	scores['lv_scr'] = lv_scr


	# print "sum_total", relevance_scr+new_member_scr+relationship_scr+votes_scr+interested_in_scr+age_scr+curr_loc_scr+hometown_loc_scr+lv_scr
	scores["sum_total"] = relevance_scr+new_member_scr+relationship_scr+votes_scr+interested_in_scr+age_scr+curr_loc_scr+hometown_loc_scr+lv_scr

	return scores