def get(self, request): key_words = request.GET.get('s','') s_type = request.GET.get("s_type", "") re_datas = [] if key_words: if s_type == "article": s = ArticleType.search() s = s.suggest('my_suggest', key_words, completion={ "field": "suggest", "fuzzy": { "fuzziness": 2 }, "size": 10 }) elif s_type == "question": s = QuestionType.search() s = s.suggest('my_suggest', key_words, completion={ "field": "suggest", "fuzzy": { "fuzziness": 2 }, "size": 10 }) elif s_type == "job": s = LagouType.search() s = s.suggest('my_suggest', key_words, completion={ "field": "suggest", "fuzzy": { "fuzziness": 2 }, "size": 10 }) elif s_type == "moviee": s = MovieType.search() s = s.suggest('my_suggest', key_words, completion={ "field": "suggest", "fuzzy": { "fuzziness": 2 }, "size": 10 }) suggestions = s.execute_suggest() for match in suggestions.my_suggest[0].options: source = match._source re_datas.append(source["title"]) return HttpResponse(json.dumps(re_datas),content_type="application/json")
def get(self,request): key_words = request.GET.get("s",'') re_datas=[] if key_words: s=LagouType.search() s=s.suggest('my_suggest',key_words,completion={ "field":"suggest","fuzzy":{ "fuzziness":2 }, "size":10 }) suggestions=s.execute_suggest() for match in suggestions.my_suggest[0].options: source = match._source re_datas.append(source['title']) return HttpResponse(json.dumps(re_datas),content_type='application/json')
def get(self, request): key_words = request.GET.get('s', '') search_index = request.GET.get('s_type', 'artical') re_datas = [] if key_words: if search_index == 'artical': s_search = ArticalType.search() elif search_index == 'job': s_search = LagouType.search() # s_search = ArticalType.search() ss = s_search.suggest('my_suggest', key_words, completion={ "field": "suggest", "fuzzy": { "fuzziness": 2 }, "size": 10 }) suggestions = ss.execute_suggest() for match in suggestions.my_suggest[0].options: source = match._source re_datas.append(source['title']) return HttpResponse(json.dumps(re_datas), content_type="application/json")
def get(self, request): key_words = request.GET.get('s', '') current_page = request.GET.get('s_type', '') if current_page == "article": re_datas = [] if key_words: s = ArticleType.search() # fuzzy模糊搜索。fuzziness 编辑距离 prefix_length前面不变化的前缀长度 s = s.suggest('my_suggest', key_words, completion={ "field": "suggest", "fuzzy": { "fuzziness": 2 }, "size": 10 }) suggestions = s.execute_suggest() for match in suggestions.my_suggest[0].options[:10]: source = match._source re_datas.append(source["title"]) # re_datas.append(source["content"]) return HttpResponse( json.dumps(re_datas), content_type="application/json") elif current_page == "job": re_datas = [] if key_words: s = LagouType.search() # fuzzy模糊搜索。fuzziness 编辑距离 prefix_length前面不变化的前缀长度 s = s.suggest('my_suggest', key_words, completion={ "field": "suggest", "fuzzy": { "fuzziness": 2 }, "size": 10 }) suggestions = s.execute_suggest() name_set = OrderedSet() for match in suggestions.my_suggest[0].options[:10]: source = match._source name_set.add(source["title"]) for name in name_set: re_datas.append(name) # re_datas.append(source["content"]) return HttpResponse( json.dumps(re_datas), content_type="application/json") elif current_page == "question": re_datas = [] if key_words: s = ZhiHuQuestionType.search() # fuzzy模糊搜索。fuzziness 编辑距离 prefix_length前面不变化的前缀长度 s = s.suggest('my_suggest', key_words, completion={ "field": "suggest", "fuzzy": { "fuzziness": 2 }, "size": 10 }) name_set = OrderedSet() suggestions = s.execute_suggest() if suggestions: for match in suggestions.my_suggest[0].options[:10]: if match._type == "question": source = match._source re_datas.append(source["title"]) elif match._type == "answer": source = match._source name_set.add(source["author_name"]) for name in name_set: re_datas.append(name) return HttpResponse( json.dumps(re_datas), content_type="application/json")
def get(request): key_words = request.GET.get('s', '') current_type = request.GET.get('s_type', '') if current_type == "article": return_suggest_list = [] if key_words: s = ArticleType.search() """ fuzzy 模糊搜索, fuzziness 编辑距离, prefix_length 前面不变化的前缀长度 """ s = s.suggest('my_suggest', key_words, completion={ "field": "suggest", "fuzzy": { "fuzziness": 2 }, "size": 10 }) suggestions = s.execute() for match in suggestions.suggest.my_suggest[0].options[:10]: source = match._source return_suggest_list.append(source["title"]) return HttpResponse(json.dumps(return_suggest_list), content_type="application/json") elif current_type == "job": return_suggest_list = [] if key_words: s = LagouType.search() s = s.suggest('my_suggest', key_words, completion={ "field": "suggest", "fuzzy": { "fuzziness": 2 }, "size": 10 }) suggestions = s.execute() # 对于不同公司同名职位去重,提高用户体验 name_set = OrderedSet() for match in suggestions.suggest.my_suggest[0].options[:10]: source = match._source name_set.add(source["title"]) for name in name_set: return_suggest_list.append(name) return HttpResponse(json.dumps(return_suggest_list), content_type="application/json") elif current_type == "question": return_suggest_list = [] if key_words: s_question = ZhiHuQuestionType.search() """fuzzy模糊搜索, fuzziness 编辑距离, prefix_length前面不变化的前缀长度""" s_question = s_question.suggest('my_suggest', key_words, completion={ "field": "suggest", "fuzzy": { "fuzziness": 2 }, "size": 10 }) suggestions_question = s_question.execute() for match in suggestions_question.suggest.my_suggest[ 0].options[:10]: source = match._source return_suggest_list.append(source["title"]) return HttpResponse(json.dumps(return_suggest_list), content_type="application/json")
def get(self, request): key_words = request.GET.get('s', '') current_page = request.GET.get('s_type', '') # 搜索文章 if current_page == "article": suggest_list = [] if key_words: s = ArticleType.search() s = s.suggest('my_suggest', key_words, completion={ "field": "suggest", "fuzzy": { "fuzziness": 2 }, "size": 10 }) suggestions = s.execute_suggest() for match in suggestions.my_suggest[0].options[:10]: source = match._source suggest_list.append(source["title"]) return HttpResponse(json.dumps(suggest_list), content_type="application/json") # 搜索问答 elif current_page == "question": suggest_list = [] if key_words: s = ZhiHuQuestionType.search() s = s.suggest('my_suggest', key_words, completion={ "field": "suggest", "fuzzy": { "fuzziness": 2 }, "size": 10 }) suggestions = s.execute_suggest() if suggestions: for match in suggestions.my_suggest[0].options[:10]: if match._type == "question": source = match._source suggest_list.append(source["title"]) return HttpResponse(json.dumps(suggest_list), content_type="application/json") # 搜索职位 elif current_page == "job": suggest_list = [] if key_words: s = LagouType.search() s = s.suggest('my_suggest', key_words, completion={ "field": "suggest", "fuzzy": { "fuzziness": 2 }, "size": 10 }) suggestions = s.execute_suggest() for match in suggestions.my_suggest[0].options[:10]: source = match._source suggest_list.append(source["title"]) return HttpResponse(json.dumps(suggest_list), content_type="application/json")