123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169 |
- """
- @author: luojunhui
- """
- class SearchABTest(object):
- """
- 搜索策略实验方案
- """
- ori_title = None
- article_summary = None
- article_keys = None
- trace_id = None
- def __init__(self, info, searchMethod):
- SearchABTest.set_class_properties(info, searchMethod)
- @classmethod
- def set_class_properties(cls, info, searchMethod):
- """
- 初始化搜索策略实验类
- :param searchMethod:
- :param info: kimi 挖掘的基本信息
- :return:
- """
- cls.ori_title = info["oriTitle"]
- cls.article_summary = info["kimiSummary"]
- cls.article_keys = info["kimiKeys"]
- cls.trace_id = info["traceId"]
- cls.searchMethod = searchMethod
- @classmethod
- async def base_line(cls):
- """
- 兜底策略
- """
- result = await cls.searchMethod.search_v1(
- text=cls.article_keys[0],
- trace_id=cls.trace_id
- )
- if result:
- return result
- else:
- sub_result = await cls.searchMethod.search_v1(
- text=cls.article_keys[1],
- trace_id=cls.trace_id)
- if sub_result:
- return sub_result
- else:
- return await cls.searchMethod.search_v1(
- text=cls.article_keys[2],
- trace_id=cls.trace_id
- )
- @classmethod
- async def ab_0(cls):
- """
- 默认原标题搜索
- :return:
- """
- search_result = await cls.searchMethod.search_v1(
- text=cls.ori_title,
- trace_id=cls.trace_id
- )
- if search_result:
- return search_result
- else:
- return await cls.base_line()
- @classmethod
- async def ab_1(cls):
- """
- 使用 content_summary搜索
- :return:
- """
- search_result = await cls.searchMethod.search_v1(
- text=cls.article_summary,
- trace_id=cls.trace_id
- )
- if search_result:
- return search_result
- else:
- return await cls.ab_0()
- @classmethod
- async def ab_2(cls):
- """
- 使用文本关键词搜索
- :return:
- """
- search_result = await cls.searchMethod.search_v1(
- text=cls.article_keys[0],
- trace_id=cls.trace_id
- )
- if search_result:
- return search_result
- else:
- return await cls.base_line()
- @classmethod
- async def ab_3(cls):
- """
- 使用文本关键词搜索
- :return:
- """
- search_result = await cls.searchMethod.search_v1(
- text=cls.article_keys[1],
- trace_id=cls.trace_id
- )
- if search_result:
- return search_result
- else:
- return await cls.base_line()
- @classmethod
- async def ab_4(cls):
- """
- 使用文本关键词搜索
- :return:
- """
- search_result = await cls.searchMethod.search_v1(
- text=cls.article_keys[2],
- trace_id=cls.trace_id
- )
- if search_result:
- return search_result
- else:
- return await cls.base_line()
- @classmethod
- async def ab_5(cls):
- """
- 增量搜索, 返回result_list
- :return:
- """
- result_list = await cls.searchMethod.search_v2(
- text=cls.article_summary[:15],
- trace_id=cls.trace_id
- )
- if len(result_list) > 3:
- return result_list
- else:
- result_list += await cls.searchMethod.search_v2(
- text=cls.ori_title[:15],
- trace_id=cls.trace_id
- )
- if len(result_list) > 3:
- return result_list
- else:
- result_list += await cls.searchMethod.search_v2(
- text=cls.article_keys[0],
- trace_id=cls.trace_id
- )
- if len(result_list) > 3:
- return result_list
- else:
- result_list += await cls.searchMethod.search_v2(
- text=cls.article_keys[1],
- trace_id=cls.trace_id
- )
- if result_list:
- return result_list
- else:
- result_list += await cls.searchMethod.search_v2(
- text=cls.article_keys[2],
- trace_id=cls.trace_id
- )
- return result_list
|