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