Python GAE搜索API:自定义代码段长度

Python GAE搜索API:自定义代码段长度,python,google-app-engine,python-2.7,google-search-api,Python,Google App Engine,Python 2.7,Google Search Api,我似乎无法获取自定义代码段长度: snippet = 'snippet("%s", content, 50)' % search_query index = search.Index(name='index', namespace='namespace') start_time = time.time() results = index.search( query=Query( query_string=search_query, options=Quer

我似乎无法获取自定义代码段长度:

snippet = 'snippet("%s", content, 50)' % search_query
index = search.Index(name='index', namespace='namespace')
start_time = time.time()
results = index.search(
    query=Query(
        query_string=search_query,
        options=QueryOptions(
            limit=10,
            cursor=Cursor(),
            sort_options=SortOptions(
                match_scorer=search.RescoringMatchScorer()),
            returned_expressions=FieldExpression('content_snippet', snippet))))
我想要一个50个字符长的代码段,而不是默认的160个字符。根据本文档,snippet函数可以获得3个参数:搜索词、要编写代码段的字段和可选的代码段长度


似乎它完全忽略了我传递的第三个参数。。。我做错什么了吗

我还没有亲自尝试过,但是根据参考返回了\u表达式。另请参见上的示例并更改为

returned_expressions=[FieldExpression('content_snippet', snippet)]

似乎代码片段在devserver上不起作用。请参阅文档:

使用Python开发服务器 Python开发服务器在本地计算机上运行,并模拟大部分搜索API的功能。但是,服务器上目前没有一些功能。目前,在开发服务器上运行时,不应尝试使用以下功能:

表达式中的函数 这些功能不可用:

  • 片段()
  • 地质点()
  • 距离()
  • 战俘()
如上所述,
返回的\u表达式
需要是一个iterable。从文档中:

返回的\u表达式

用于在搜索结果中求值和返回的FieldExpression的iterable

此外,请确保导入正确的
查询
查询选项
,这两个选项也可以在
google.appengine.ext.ndb
中找到。我更喜欢导入它们,以便它们有前缀,这样可读性更好;-)


你的缩进是错误的,我不知道你是否混合了制表符和空格,或者这是复制粘贴错误,但我已经重新格式化了。你指的是什么文件?在你的问题中我似乎找不到任何联系。要么添加链接,要么最好引用文档。
from google.appengine.ext import ndb
from google.appengine.api import search

# Notice the nice distinction
ndb.Query
search.Query