예제 #1
0
    def update_tweets_state_by_event_ngram(self, **kwargs):

        tweets_connector = Es_connector(index=kwargs["index"],
                                        doc_type="tweet")

        query = {
            "query": {
                "bool": {
                    "should":
                    kwargs["target_terms"],
                    "minimum_should_match":
                    1,
                    "must": [{
                        "match_phrase": {
                            kwargs["ngramsPropName"]: kwargs["ngram"]
                        }
                    }, {
                        "match": {
                            kwargs["session"]: kwargs["query_label"]
                        }
                    }]
                }
            }
        }
        return tweets_connector.update_query(query, kwargs["session"],
                                             kwargs["new_label"])
예제 #2
0
 def set_cluster_state(self, index, session, cid, state):
     tweets_connector = Es_connector(index=index, doc_type="tweet")
     # All tweets
     session = 'session_' + session
     query = {"query": {"term": {"imagesCluster": cid}}}
     res = tweets_connector.update_query(query, session, state)
     return res
예제 #3
0
 def set_search_status(self, index, session, state, word):
     tweets_connector = Es_connector(index=index, doc_type="tweet")
     session = 'session_' + session
     query = {
         "query": {
             "bool": {
                 "must": {
                     "simple_query_string": {
                         "fields": ["text"],
                         "query": word
                     }
                 },
                 "filter": {
                     "bool": {
                         "should": [{
                             "match": {
                                 session: "proposed"
                             }
                         }]
                     }
                 }
             }
         }
     }
     res = tweets_connector.update_query(query, session, state)
     return res
예제 #4
0
 def set_search_status_force(self, index, session, state, word):
     tweets_connector = Es_connector(index=index, doc_type="tweet")
     session = 'session_' + session
     query = {
         "query": {
             "bool": {
                 "must": {
                     "simple_query_string": {
                         "fields": ["text"],
                         "query": word
                     }
                 }
             }
         }
     }
     res = tweets_connector.update_query(query, session, state)
     return res
예제 #5
0
    def update_tweets_state_by_ngram(self, **kwargs):

        tweets_connector = Es_connector(index=kwargs["index"],
                                        doc_type="tweet")

        if kwargs.get('full_search', False):  # All tweets
            query = {
                "query": {
                    "bool": {
                        "must": [{
                            "match_phrase": {
                                kwargs["ngramsPropName"]: kwargs["ngram"]
                            }
                        }, {
                            "match": {
                                kwargs["session"]: kwargs["query_label"]
                            }
                        }]
                    }
                }
            }
        else:  # Tweets matching a user-generated query
            query = {
                "query": {
                    "bool": {
                        "must": [{
                            "match": {
                                "text": kwargs["word"]
                            }
                        }, {
                            "match_phrase": {
                                kwargs["ngramsPropName"]: kwargs["ngram"]
                            }
                        }, {
                            "match": {
                                kwargs["session"]: kwargs["query_label"]
                            }
                        }]
                    }
                }
            }

        return tweets_connector.update_query(query, kwargs["session"],
                                             kwargs["new_label"])
예제 #6
0
    def set_status(self, index, session, data):
        tweets_connector = Es_connector(index=index, doc_type="tweet")
        # All tweets
        session = 'session_' + session
        event = json.loads(data['event'])
        # print("------------------------")
        # print(data)
        # print("------------------------")
        # print(event)
        # print(event['main_term'])
        terms = []
        words = event['main_term'] + ' '
        for t in event['related_terms']:
            terms.append(
                {"match": {
                    "text": {
                        "query": t['word'],
                        "boost": t['value']
                    }
                }})
            words += t['word'] + " "
        terms.append(
            {"match": {
                "text": {
                    "query": event['main_term'],
                    "boost": 2
                }
            }})
        # query = {
        #     "query": {
        #         "bool": {
        #             "should": terms
        #         }
        #     }
        # }

        query = {
            "query": {
                "bool": {
                    "must": [{
                        "bool": {
                            "should": terms
                        }
                    }],
                    "filter": {
                        "bool": {
                            "should": [{
                                "match": {
                                    session: "proposed"
                                }
                            }]
                        }
                    }
                }
            }
        }

        # print(query)
        res = tweets_connector.update_query(query, session, data['status'])
        # Event related

        return res