Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.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 AppEngine中字符串的索引列表_Google App Engine_Objectify - Fatal编程技术网

Google app engine 商店及;Google AppEngine中字符串的索引列表

Google app engine 商店及;Google AppEngine中字符串的索引列表,google-app-engine,objectify,Google App Engine,Objectify,我使用AppEngine的原生数据存储API在Java中存储对象 我需要搜索对象中的各种项目-例如:电子邮件地址、电子邮件主题、发件人姓名等。即使是部分输入,也应该显示结果-如实时搜索 为了实现这一点,我使用StringUtils2.breakdownFragments将项目标记为可能的输入,并将其转换为片段——字符串“Foo Bar”将变成:“f”、“fo”、“Foo”、“b”、“ba”、“Bar” 我不明白的是,我如何给出要索引的字符串列表,以及如何应用过滤器检索它们 在使用JDO或Obje

我使用AppEngine的原生数据存储API在Java中存储对象

我需要搜索对象中的各种项目-例如:电子邮件地址、电子邮件主题、发件人姓名等。即使是部分输入,也应该显示结果-如实时搜索

为了实现这一点,我使用StringUtils2.breakdownFragments将项目标记为可能的输入,并将其转换为片段——字符串“Foo Bar”将变成:“f”、“fo”、“Foo”、“b”、“ba”、“Bar”

我不明白的是,我如何给出要索引的字符串列表,以及如何应用过滤器检索它们

在使用JDO或Objectify时,我认为它相对简单,但通过本机API使用它,我不知道如何做

实体不接受要存储的列表


甚至可以做到吗

您可以调用
Entity.setProperty()
并将
列表作为值传递。

小心索引爆炸。每个列表属性项都会单独编制索引。您可以运行的查询的复杂性非常有限。在搜索API出现之前,我就这样做了


如果您的搜索功能可以容忍少量的不同步,我建议使用搜索API来实现您的功能。

谢谢。我开始研究全文API。只是一个警告,它是测试版,这就是它阻止我。此外,我不明白为什么不仅可以让它索引所有字段和构建索引,让开发人员使用该功能,而不是让他们同步实体更新或删除所有内容。好吧,搜索API是一种通用服务,可能不会与数据存储一起使用。例如,您可以使用API来索引文本文档、爬虫程序中的网页、语音到文本的转换等,而“仅仅索引实体字段”涉及到很多复杂性。您希望它如何索引,您将如何搜索字段(and、or、not、连接、析取),字段应如何转换为字符串(搜索api仅索引文本),等等。在Hibernate的“Hibernate search”项目插件中可以找到对该问题的很好的介绍。这也很有效。谢谢但是分解索引是个问题。分解索引只是在跨多个列表属性创建多属性索引时的问题。即使如此,如果你对如何定义它们很聪明,你也可以避免索引爆炸。见本文: