Google app engine 将静态html文件添加到搜索API
我正在建立一个网站,将托管大量的静态html文件,然后我希望能够使用谷歌应用程序引擎搜索API进行搜索。 我已经看到了很多关于如何使用谷歌应用程序引擎托管静态网站的例子,但是没有一个包括如何实现搜索的例子Google app engine 将静态html文件添加到搜索API,google-app-engine,search,Google App Engine,Search,我正在建立一个网站,将托管大量的静态html文件,然后我希望能够使用谷歌应用程序引擎搜索API进行搜索。 我已经看到了很多关于如何使用谷歌应用程序引擎托管静态网站的例子,但是没有一个包括如何实现搜索的例子 我该怎么设置这个呢?添加要搜索的静态html文件的最佳方法是什么?是否有一种方法可以整体完成此操作,或者我需要爬过所有文件才能添加它们?没有预先制作好的/快捷方式解决方案可以利用您的应用程序提供的可搜索文档是静态文件这一事实 发件人: 搜索API基于四个主要概念:文档、索引、, 查询和结果 您
我该怎么设置这个呢?添加要搜索的静态html文件的最佳方法是什么?是否有一种方法可以整体完成此操作,或者我需要爬过所有文件才能添加它们?没有预先制作好的/快捷方式解决方案可以利用您的应用程序提供的可搜索文档是静态文件这一事实 发件人: 搜索API基于四个主要概念:文档、索引、, 查询和结果 您需要:
- 创建一个与每个静态文件对应的可搜索的搜索API文档。在此步骤中,只有您可以指定如何将静态文件的内容解释并转换为可搜索字段。发件人:
datetime
类的
创建适当类型的字段值
appengine/standard/search/snippets/snippets.py
- 提供用于执行搜索和处理/显示结果的应用程序代码。同样,只有您知道要搜索哪些索引以及如何处理结果。发件人:
Index.search()
。查询字符串可以直接作为
参数,也可以将字符串包含在
作为参数传递。默认情况下,search()
按递减顺序排序的文档。要控制多少
返回文档、文档的排序方式或将计算字段添加到
对于结果,您需要使用一个Query
对象,该对象包含一个查询
字符串,还可以指定其他搜索和排序选项
appengine/standard/search/snippets/snippets.py
def query_index():
index=search.index(‘产品’)
查询字符串='产品:钢琴和价格<5000'
结果=index.search(查询字符串)
对于结果中的文件:
打印(文档)
旁注:如果您实际将静态文件与应用程序代码捆绑在一起(而不是从地面军事系统提供),则需要使应用程序代码可以访问这些文件。请参阅表中的应用程序可读行:
应用程序可读性
可选。布尔型。默认情况下,在静态文件处理程序中声明的文件
作为静态数据上传,仅向最终用户提供。他们
无法被应用程序读取。如果此字段设置为true,则
文件也作为代码数据上传,以便应用程序可以读取
他们。这两种上传都要根据您的代码和静态数据收费
储藏室
没有预先准备好的/快捷方式解决方案可以利用可搜索文档是应用程序提供的静态文件这一事实
发件人:
搜索API基于四个主要概念:文档、索引、,
查询和结果
您需要:
- 创建一个与每个静态文件对应的可搜索的搜索API文档。在此步骤中,只有您可以指定如何将静态文件的内容解释并转换为可搜索字段。发件人:
下面的代码示例演示如何创建文档对象。这个
调用文档构造函数时,字段参数设置为列表
字段对象的类型。创建并初始化列表中的每个对象
通过使用字段类的构造函数。注意这个用法
构造函数和Pythondatetime
类的
创建适当类型的字段值
appengine/standard/search/snippets/snippets.py
- 提供用于执行搜索和处理/显示结果的应用程序代码。同样,只有您知道要搜索哪些索引以及如何处理结果。发件人:
要从索引中检索文档,需要构造查询字符串并
调用Index.search()
。查询字符串可以直接作为
参数,也可以将字符串包含在
作为参数传递。默认情况下,search()
按递减顺序排序的文档。要控制多少
返回文档、文档的排序方式或将计算字段添加到
对于结果,您需要使用一个Query
对象,该对象包含一个查询
字符串,还可以指定其他搜索和排序选项
appengine/standard/search/snippets/snippets.py
def query_index():
index=search.index(‘产品’)
查询字符串='产品:钢琴和价格<5000'
结果=index.search(查询字符串)
对于结果中的文件:
打印(文档)
旁注:如果您实际将静态文件与应用程序代码捆绑在一起(而不是从地面军事系统提供),则需要使应用程序代码可以访问这些文件。请参阅表中的应用程序可读行:
应用程序可读性
可选。布尔型。默认情况下,在静态文件处理程序中声明的文件
作为静态数据上传,仅向最终用户提供。他们
无法被应用程序读取。如果此字段设置为tr
def create_document():
document = search.Document(
# Setting the doc_id is optional. If omitted, the search service will
# create an identifier.
doc_id='PA6-5000',
fields=[
search.TextField(name='customer', value='Joe Jackson'),
search.HtmlField(
name='comment', value='this is <em>marked up</em> text'),
search.NumberField(name='number_of_visits', value=7),
search.DateField(name='last_visit', value=datetime.now()),
search.DateField(
name='birthday', value=datetime(year=1960, month=6, day=19)),
search.GeoField(
name='home_location', value=search.GeoPoint(37.619, -122.37))
])
return document
def add_document_to_index(document):
index = search.Index('products')
index.put(document)
def query_index():
index = search.Index('products')
query_string = 'product: piano AND price < 5000'
results = index.search(query_string)
for scored_document in results:
print(scored_document)