我刚在我的机器上本地创建了一个使用Google App Engine Faceted Search的完美运行的分面搜索服务,用Python编写。 一旦我部署到我们的生产服务器,它会在索引创建期间抛出错误,特别是当代码尝试执行 index.put(docs)时,其中docs是[max 100]的数组的 search.Document
错误是:" PutError:一个或多个放置文档操作失败:值为空"
然后我尝试回到我之前版本的服务,直到那时它才像魅力一样工作。我删除了添加的所有新 search.TextField ,然后从 search.Document facets = [search.AtomFacet(...)] >构造函数关键字。 它又开始工作了。
然后,宝贝再次前进,我已经添加了我需要的所有字段,但构造函数中仍然没有facets = []。它有效。
一旦我再次添加 facets = [search.AtomFacet(name =' propName',value = doc.propName,如果doc.propName else'&# 39;)] 然后再次出现错误。虽然在我的机器上本地,但它的工作完美。
我们是否需要在生产服务器上启用此功能才能启用任何设置/配置?
谢谢
答案 0 :(得分:1)
Facet值不能为空字符串。您可以通过不包含具有空值的构面或具有空构面的特殊值来解决此问题。
表示,分面搜索(python)的本地实现目前接受的是一个错误的空方面。答案 1 :(得分:0)
我直接从谷歌团队得到了答案,即:
Facet值不能为空字符串。你可以解决这个问题 包括具有空值的构面或具有特殊值的构面 空面(不推荐为空面通常意味着 文档不属于指定的类别/方面,所以它应该 不计入该方面的汇总)。本地实施 分面搜索(python)当前接受的空面是一个 错误并将被修复。
来自this thread的人可能有兴趣关注对话。