Commit a9f82c84 authored by zhanglu's avatar zhanglu

Merge branch 'feature/sun_topic2es' into 'master'

Feature/sun topic2es

See merge request !200
parents 407862de 3985573b
......@@ -579,27 +579,25 @@ class TopicUtils(object):
f = [
{"term": {"is_deleted": False}},
]
_range = {}
if not filters:
return f
for k, v in filters.items():
if not v:
continue
if k in ["create_time_gte", "create_time_lte"]:
if k == "create_time_gte":
op = "gte"
_range.update({op:v})
elif k == "create_time_lte":
op = "lte"
f.append({
"range": {
"create_time_val": {
op: v,
}
}
})
_range.update({op: v})
else:
if isinstance(k, list):
if isinstance(v, list):
f.append({
"terms": {k: v},
})
......@@ -607,7 +605,7 @@ class TopicUtils(object):
f.append({
"term": {k: v},
})
f.append({"range": {"create_time_val": _range}})
if filter_online:
f.append({"term": {"is_online": True}})
......@@ -631,32 +629,50 @@ class TopicUtils(object):
"""处理排序部分。"""
sort_rule = []
if sorts_by == TOPIC_SEARCH_SORT.VOTE_NUM:
sort_rule.append({
"vote_num":{
"order":"desc"
},
"update_time":{
"order":"desc"
},
})
elif sorts_by == TOPIC_SEARCH_SORT.VOTE_NUM:
pass
if isinstance(sorts_by, int):
if sorts_by == TOPIC_SEARCH_SORT.VOTE_NUM:
sort_rule.append({
"vote_num":{
"order":"desc"
},
"update_time":{
"order":"desc"
},
})
elif sorts_by == '2':
sort_rule.append({
"id":{
"order":"desc"
},
})
elif isinstance(sorts_by, list):
for sort_by in sorts_by:
if sort_by == TOPIC_SEARCH_SORT.ID_AEC:
sort_rule.append({
"id":{
"order":"asc"
},
})
elif sort_by == TOPIC_SEARCH_SORT.ID_DESC:
sort_rule.append({
"id":{
"order":"desc"
},
})
elif sort_by == TOPIC_SEARCH_SORT.SCORE_AEC:
sort_rule.append({
"sort_score":{
"order":"asc"
},
})
elif sort_by == TOPIC_SEARCH_SORT.SCORE_DESC:
sort_rule.append({
"sort_score":{
"order":"desc"
},
})
return sort_rule
@classmethod
def list_topic_ids(cls, filters, nfilters, sorts_by, offset=0, size=10, index_name="topic", filter_online=True):
must = cls.process_filters(filters, filter_online=True)
must = cls.process_filters(filters, filter_online=filter_online)
q = {
"query": {
"bool": {
......@@ -668,7 +684,8 @@ class TopicUtils(object):
if sorts_by:
sorts = cls.process_sort(sorts_by)
q["sort"] = sorts
if sorts:
q["sort"] = sorts
try:
result_dict = ESPerform.get_search_results(
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment