def test_search(): client = Client(app_key, app_secret, base_url, lib=client_name) indexSearch = Search(client) indexSearch.addIndex(index_name) indexSearch.addSort('updated', const.SEARCH_SORT_DESC) indexSearch.fetch_fields = ['id', 'title', 'updated'] indexSearch.query = "default:'opensearch'" agg_range = ['0~1439514378', '1439514378~1539514378'] indexSearch.addAggregate('created', 'count()', agg_sampler_threshold=10000, agg_sampler_step=5, agg_filter="created>1423456781", max_group=100, agg_range=agg_range) grade = [3.0, 5.0] indexSearch.addDistinct('owner_id', grade=grade) indexSearch.addFilter('owner_id>=1') indexSearch.addFilter('created>=1439514200') indexSearch.addSummary("text", length=100, element='em', ellipsis='...', snipped=1, element_prefix='<em>', element_postfix='</em>') indexSearch.qp = 'stop_word' indexSearch.disable = 'qp' indexSearch.start = 0 indexSearch.hits = 50 indexSearch.format = 'json' indexSearch.rerank_size = 200 indexSearch.formula_name = 'default' indexSearch.first_formula_name = 'default' indexSearch.kvpairs = 'duniqfield:owner_id' ret = indexSearch.call() print('test_search', ret) assert ret['status'] == 'OK'
def test_scroll(): client = Client(app_key, app_secret, base_url, lib=client_name) indexSearch = Search(client) indexSearch.addIndex(index_name) indexSearch.fetch_fields = ['id', 'title', 'updated'] indexSearch.query = "default:'opensearch'" indexSearch.addFilter('owner_id>=1') indexSearch.formula_name = 'default' indexSearch.first_formula_name = 'default' indexSearch.addSummary("text", length=100, element='em', ellipsis='...', snipped=1, element_prefix='<em>', element_postfix='</em>') indexSearch.qp = 'stop_word' indexSearch.disable = 'qp' ret = indexSearch.scroll('1m', search_type='scan') print(ret) assert ret['status'] == 'OK'
def test_scroll(): client = Client(app_key, app_secret, base_url, lib=client_name) indexSearch = Search(client) indexSearch.addIndex(index_name) indexSearch.fetch_fields = ["id", "title", "updated"] indexSearch.query = "default:'opensearch'" indexSearch.addFilter("owner_id>=1") indexSearch.formula_name = "default" indexSearch.first_formula_name = "default" indexSearch.addSummary( "text", length=100, element="em", ellipsis="...", snipped=1, element_prefix="<em>", element_postfix="</em>" ) indexSearch.qp = "stop_word" indexSearch.disable = "qp" ret = indexSearch.scroll("1m", search_type="scan") print(ret) assert ret["status"] == "OK"
def search(query_list,limit=5): # query_list 搜索词列表 table_name = 'main' #默认配置 index_name = build_index_name client = Client(app_key, app_secret, base_url, lib=client_name) #base_url = 'http://opensearch-cn-beijing.aliyuncs.com'# 我建立的openserch应用的 公网API域名 返回的是什么?? indexSearch = Search(client) indexSearch.addIndex(build_index_name) #query_list = ["美女", "性感"] query_para_list = [] #检索字符串list for word in query_list: para = "default:'"+ word + "'"#转换格式 和阿里云的开放搜索页面的搜索测试相同的格式 default:'搜索' query_para_list.append(para) indexSearch.query = " OR ".join(query_para_list) #全or检索 #print indexSearch.query indexSearch.addFilter("is_download=1")#过滤结果 要求 is_download字段必须设为1的才进行检索 数据库表 video_info indexSearch.start = 0 #start indexSearch.hits = limit #limit hits indexSearch.format = 'json' #数据结果格式 ret = indexSearch.call() #print json.dumps(ret) return ret["result"]["items"]
def test_search(): client = Client(app_key, app_secret, base_url, lib=client_name) indexSearch = Search(client) indexSearch.addIndex(index_name) indexSearch.addSort("updated", const.SEARCH_SORT_DESC) indexSearch.fetch_fields = ["id", "title", "updated"] indexSearch.query = "default:'opensearch'" agg_range = ["0~1439514378", "1439514378~1539514378"] indexSearch.addAggregate( "created", "count()", agg_sampler_threshold=10000, agg_sampler_step=5, agg_filter="created>1423456781", max_group=100, agg_range=agg_range, ) grade = [3.0, 5.0] indexSearch.addDistinct("owner_id", grade=grade) indexSearch.addFilter("owner_id>=1") indexSearch.addFilter("created>=1439514200") indexSearch.addSummary( "text", length=100, element="em", ellipsis="...", snipped=1, element_prefix="<em>", element_postfix="</em>" ) indexSearch.qp = "stop_word" indexSearch.disable = "qp" indexSearch.start = 0 indexSearch.hits = 50 indexSearch.format = "json" indexSearch.rerank_size = 200 indexSearch.formula_name = "default" indexSearch.first_formula_name = "default" indexSearch.kvpairs = "duniqfield:owner_id" ret = indexSearch.call() print("test_search", ret) assert ret["status"] == "OK"