Example #1
0
    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")
Example #2
0
    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')
Example #3
0
 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")
Example #4
0
 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")
Example #5
0
 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")
Example #6
0
 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")
Example #7
0
    def get(self, request):
        key_words = request.GET.get('s', '')
        current_type = request.GET.get('s_type', '')

        if current_type == 'article':
            re_datas = []
            if key_words:
                s = ArticleType.search()
                s = s.suggest('my_suggest',
                              key_words,
                              completion={
                                  'field': 'suggest',
                                  'fuzzy': {
                                      "fuzziness": 3
                                  },
                                  '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')
        elif current_type == 'question':
            re_datas = []
            if key_words:
                s = ZhiHuQuestionType.search()
                s = s.suggest('my_suggest',
                              key_words,
                              completion={
                                  'field': 'suggest',
                                  'fuzzy': {
                                      "fuzziness": 3
                                  },
                                  'size': 10
                              })

                suggestions = s.execute().suggest
                for match in suggestions[0].options:
                    source = match._source
                    re_datas.append(source['title'])
            return HttpResponse(json.dumps(re_datas),
                                content_type='application/json')
        elif current_type == 'job':
            re_datas = []
            if key_words:
                s = LagouType().search()
                s = s.suggest('my_suggest',
                              key_words,
                              completion={
                                  'field': 'suggest',
                                  'fuzzy': {
                                      "fuzziness": 3
                                  },
                                  'size': 10
                              })
                suggestions = s.execute().suggest
                for match in suggestions[0].options:
                    source = match._source
                    re_datas.append(source['title'])
            return HttpResponse(json.dumps(re_datas),
                                content_type='application/json')
Example #8
0
    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")