コード例 #1
0
	def populateDict(self, ar, model):
		d = {
			'name' : model.name,
			'description' : model.description[0:300] + "...",
			'image_source' : compress(model.image_source[0], 200, 137) if (model.image_source) else "/assets/images/no_image.png",
			'button' : model.key().name()
			}
		ar.append(d)
コード例 #2
0
	def commonInfo(self, dictionary, someEntity):
		dictionary["name"] = someEntity.name
		dictionary["alternate_names"] = someEntity.alternate_names
		dictionary["category"] = someEntity.category
		dictionary["description"] = someEntity.description
		dictionary["country"] = someEntity.country
		dictionary["state"] = someEntity.state
		dictionary["city"] = someEntity.city
		dictionary["latitude"] = someEntity.latitude
		dictionary["longitude"] = someEntity.longitude
		dictionary["image_source"] = map(lambda x: {"src": x[0], "desc":x[1], "thumb":compress(x[0], 150, 150)}, zip(someEntity.image_source, someEntity.image_description))
		dictionary["map_source"] = map(lambda x: str(x), someEntity.map_source)	
		dictionary["citation_source"] = map(lambda x:{"src": x[0], "desc":x[1]}, zip(someEntity.citation_source, someEntity.citation_description))
		# assert len(someEntity.external_source) == 0
		dictionary["external_source"] = map(lambda x:{"src": x[0], "desc":x[1]}, zip(someEntity.external_link_source, someEntity.external_link_description))
コード例 #3
0
    def get(self):
        # text to search
        text = self.request.get("search")
        index = search.Index(name=_INDEX_NAME)
        
        # Set sort options
        sort = search.SortOptions(match_scorer=search.MatchScorer())
        
        # Set query options
        options = search.QueryOptions(
            sort_options=sort,
            returned_fields=['content_of_article', 'article_url', 'image_url'],
            snippeted_fields=['content_of_article'])

        # define query boolean options
        q_list = self.generate_query(text)
        result = []
        doc_id_list =[]
        
        for q in q_list:
            query_obj = search.Query(query_string=q, options=options)
            results = index.search(query_obj)

            for doc in results:
                # check if the doc is already in display results
                if (str(doc.doc_id) in doc_id_list) == False:
                    result.append({
                        "snippet":str(doc.expressions[0].value),
                        "url":  str(doc.fields[1].value),
                        "image": compress(doc.fields[2].value, 70, 70)
                        })
                    doc_id_list.append(str(doc.doc_id))

                  
  
        self.response.headers['Content-Type'] = 'application/json'
        self.response.write(json.dumps(result))