GAEでの全文検索の代わりに、ソートされた結果セット、キーワード関連性、および2番目にソートされた結果セットを返すために以下のソリューションを使用しています。 )。私は最適化の提案や別のアプローチを探しています。セカンダリソートを使用したGAEテキスト検索
特定の検索では関連性の高い(キーワード一致の数で測定される)複数の検索結果が表示される可能性がありますが、元の検索クエリの順序を保持すると複雑さが増します今。何か案は?
ステップ1:あなたが蓄積することができ、グループ周波数リストは
#return a dictionary of keys, with their frequency of occurrence
grouped_results = defaultdict(int)
for key in results_key_list:
grouped_results[key] += 1
sorted_results = []
known = set()
#creates an empty list for each match frequency
for i in range(len(search_terms)):
sorted_results.append([])
#using the original results ordering,
#construct an array of results grouped and ordered by descending frequency
for key in results_key_list:
if key in known: continue
frequency = grouped_results[key]
sorted_results[len(search_terms) - frequency].append(key)
known.add(key)
#combine into a single list
ordered_key_list = []
for l in sorted_results:
ordered_key_list.extend(l)
del ordered_key_list[:offset]
del ordered_key_list[limit:]
result = SomeEntity.get(ordered_key_list)
ありがとうございます!これはちょうど私が探していた削減の一種です。 –