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): ...@@ -579,27 +579,25 @@ class TopicUtils(object):
f = [ f = [
{"term": {"is_deleted": False}}, {"term": {"is_deleted": False}},
] ]
_range = {}
if not filters: if not filters:
return f return f
for k, v in filters.items(): for k, v in filters.items():
if not v:
continue
if k in ["create_time_gte", "create_time_lte"]: if k in ["create_time_gte", "create_time_lte"]:
if k == "create_time_gte": if k == "create_time_gte":
op = "gte" op = "gte"
_range.update({op:v})
elif k == "create_time_lte": elif k == "create_time_lte":
op = "lte" op = "lte"
_range.update({op: v})
f.append({
"range": {
"create_time_val": {
op: v,
}
}
})
else: else:
if isinstance(k, list): if isinstance(v, list):
f.append({ f.append({
"terms": {k: v}, "terms": {k: v},
}) })
...@@ -607,7 +605,7 @@ class TopicUtils(object): ...@@ -607,7 +605,7 @@ class TopicUtils(object):
f.append({ f.append({
"term": {k: v}, "term": {k: v},
}) })
f.append({"range": {"create_time_val": _range}})
if filter_online: if filter_online:
f.append({"term": {"is_online": True}}) f.append({"term": {"is_online": True}})
...@@ -631,6 +629,7 @@ class TopicUtils(object): ...@@ -631,6 +629,7 @@ class TopicUtils(object):
"""处理排序部分。""" """处理排序部分。"""
sort_rule = [] sort_rule = []
if isinstance(sorts_by, int):
if sorts_by == TOPIC_SEARCH_SORT.VOTE_NUM: if sorts_by == TOPIC_SEARCH_SORT.VOTE_NUM:
sort_rule.append({ sort_rule.append({
"vote_num":{ "vote_num":{
...@@ -641,22 +640,39 @@ class TopicUtils(object): ...@@ -641,22 +640,39 @@ class TopicUtils(object):
}, },
}) })
elif sorts_by == TOPIC_SEARCH_SORT.VOTE_NUM: elif isinstance(sorts_by, list):
pass for sort_by in sorts_by:
if sort_by == TOPIC_SEARCH_SORT.ID_AEC:
elif sorts_by == '2': sort_rule.append({
"id":{
"order":"asc"
},
})
elif sort_by == TOPIC_SEARCH_SORT.ID_DESC:
sort_rule.append({ sort_rule.append({
"id":{ "id":{
"order":"desc" "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 return sort_rule
@classmethod @classmethod
def list_topic_ids(cls, filters, nfilters, sorts_by, offset=0, size=10, index_name="topic", filter_online=True): 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 = { q = {
"query": { "query": {
"bool": { "bool": {
...@@ -668,6 +684,7 @@ class TopicUtils(object): ...@@ -668,6 +684,7 @@ class TopicUtils(object):
if sorts_by: if sorts_by:
sorts = cls.process_sort(sorts_by) sorts = cls.process_sort(sorts_by)
if sorts:
q["sort"] = sorts q["sort"] = sorts
try: try:
......
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