Search code examples
google-app-enginepython-2.7jinja2google-search-api

Google App Engine: Outputting 'values' from a SearchResult object on Jinja2 template.


I would like to return the field values of a SearchDocument's object. For example, I have generated a SearchResult object using:

class SearchResult(Handler):
    def get(self):
    index = search.Index("INDEX_NAME")
    results = index.search("Brian")
    self.render('search-result.html', results = results)

The results object looks something like this:

search.SearchResults(results=[
    search.ScoredDocument(
        doc_id=u'6122080743456768', 
        fields=[search.TextField(name=u'full_name', value=u"Brian Jones"), 
        language=u'en', 
        rank=106509239L), 
    search.ScoredDocument(
        doc_id=u'4714705859903488', 
        fields=[search.TextField(name=u'full_name', value=u"Brian Lara"), 
        language=u'en', 
        rank=106427057L)], 
    number_found=2L)

Inside search-result.html, how can I return the values of the fields?

...
<body>
{{ field_values }} #return the field values "Brian Lara" and "Brian Jones"
<body>
...

Solution

  • Start here:

    {% for result in results %}
      {{ result.fields[0].value }}
    {% endfor %}
    

    (You have a '[' mismatch in your fields. Fix that, then check the syntax)