Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google app engine 为什么谷歌应用程序引擎搜索只返回;“最佳”;结果?_Google App Engine_Full Text Search - Fatal编程技术网

Google app engine 为什么谷歌应用程序引擎搜索只返回;“最佳”;结果?

Google app engine 为什么谷歌应用程序引擎搜索只返回;“最佳”;结果?,google-app-engine,full-text-search,Google App Engine,Full Text Search,GAE,索引中的3个测试数据项: 名称(1):测试1 名称(2):test1 test2 名称(3):test1 test2 test3 查询1:名称:test1 结果1:姓名(1)、姓名(2)、姓名(3) 查询2:名称:test1 test2 结果2:姓名(2),姓名(3) 查询3:名称:test1 test2 test3 结果3:姓名(3) 我想从所有3个查询返回所有3个条目(并按相关性排序)。我已检查了所有search.QueryOptions设置,但无法达到预期结果 目前,我认为自己从输

GAE,索引中的3个测试数据项:

名称(1):测试1
名称(2):test1 test2
名称(3):test1 test2 test3

查询1:名称:test1
结果1:姓名(1)、姓名(2)、姓名(3)

查询2:名称:test1 test2
结果2:姓名(2),姓名(3)

查询3:名称:test1 test2 test3
结果3:姓名(3)

我想从所有3个查询返回所有3个条目(并按相关性排序)。我已检查了所有search.QueryOptions设置,但无法达到预期结果

目前,我认为自己从输入中构造查询表达式是唯一的选择(解决方案1:name:test1或test2或test3;解决方案2:name:test1或(test1-test2)或(test2-test3)或(test1-test3)或(test1-test2-test3)),但很难相信这是建议的方法


Python 2.5,也使用SDK和产品进行了测试。

我对您的问题并不完全清楚,但此查询:

(name: test1 OR (test1 test2) OR (test1 OR test2 OR test3))
真的没有道理。这就是您所需要的:

name:(test1 OR test2 OR test3)
从您列出的查询示例中,我认为您缺少的只是所有3个查询中值之间的OR运算符:

查询1:
名称:test1

查询2:
名称:(test1或test2)

查询3:
名称:(test1或test2或test3)


您将为所有3个查询返回所有3个文档。

API不会返回这些其他结果,因为它们与查询不匹配。默认操作是一个“and”而不是一个“or”-对于任何sane搜索工具都应该是这样。在现实世界中使用或作为默认值将返回大量不相关的结果:当我搜索“应用程序引擎”时,我不想知道有关应用程序或引擎的信息。

您好,谢谢您的回答!关于这个问题,你是对的,现在问题中已经更正了。所以你说查询必须由我自己构造。无论如何,“name:test1或(test1-test2)或(test2-test3)或(test1-test3)或(test1-test2-test3)”和“name:test1或test2或test3”给出了完全不同的点击排序分数。在第一种情况下,差异非常显著(0.64;0.57;0.36),而在第二种情况下,sort_得分几乎相同(0.29;0.28;0.27)。但这和成本是另一个问题…嗨,尼克,谢谢你的回答!作为一名谷歌搜索用户,我的经验是,它不仅返回那些包含我作为输入提供的所有单词的结果(我知道有停止词消除和其他输入过程),它们“只是”排名更高。我想给我的用户同样的体验。乍一看,操作对我来说似乎太严格了。@LászlóFarkas谷歌搜索有更多的数据要处理,还有一个非常优化、非常具体的查询引擎。它可以做一些事情,比如包含与特定单词链接的文档,查找单词的同义词,以及提供高质量结果的其他技巧。它很少(如果有的话)简单地完全丢弃一个搜索词并返回只引用部分搜索的文档。欢迎您尝试,但请将您的搜索与“或”和“和”-进行比较,我想您会发现使用“或”会降低搜索方式的质量,而不会添加任何有用的信号。