def search(self, text): self.text = text.lower().replace('\n', ' ').replace('\r', ' ').replace('\t', ' ') self.purgedlist = [] for punct in self.punctuation: self.text = self.text.replace(punct, ' ') for word in self.text.split(' '): if word not in self.garbage and word != '': self.purgedlist.append(word) wordlist = [] sortedlist = [] for pword in self.purgedlist: keywords = Keyword.all().filter("word =", pword).run() for keyword in keywords: worddict = {'word': keyword.word, 'key': keyword.entitykey, 'type': keyword.wordtype} wordlist.append(worddict) wordlist = sorted(wordlist, key=lambda k: k['key']) try: if len(wordlist) > 0: entry = Entry.get(wordlist[0]['key']) worddict = {'word': [wordlist[0]['word']], 'key': wordlist[0]['key'], 'type': [wordlist[0]['type']], 'entitytype': 'Blog', 'commonwords': 1, 'entrytitle': entry.title, 'entrydesc': entry.body.replace('\r', ' ').replace('\n', ' ').replace('\t', ' ')[0:300], 'entityid': entry.key().id()} for i in range(len(wordlist)): logging.info(str(i) + ' - ' + str(wordlist[i])) if i == 0: pass else: if wordlist[i]['key'] == worddict['key']: if wordlist[i]['word'] not in worddict['word']: worddict['word'].append(wordlist[i]['word']) worddict['commonwords'] += 1 if wordlist[i]['type'] not in worddict['type']: worddict['type'].append(wordlist[i]['type']) else: sortedlist.append(worddict) entry = Entry.get(wordlist[i]['key']) worddict = {'word': [wordlist[i]['word']], 'key': wordlist[i]['key'], 'type': [wordlist[i]['type']], 'entitytype': 'Blog', 'commonwords': 1, 'entrytitle': entry.title, 'entrydesc': entry.body.replace('\r', ' ').replace('\n', ' ').replace('\t', ' ')[0:300], 'entityid': entry.key().id()} sortedlist.append(worddict) except KeyError: logging.error('KeyError') return sorted(sortedlist, key=lambda k: k['commonwords'], reverse=True)