- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我一直在关注 https://developers.google.com/appengine/docs/java/search/overview 上有关 Google 搜索 API 的教程。 .我找到的信息非常清楚如何构建文档并将其加载到索引中。我不确定的是如何将数据存储数据加载到文档中。
我试图实现的是对几个字段的简单 %LIKE% 查询。例如,我正在研究音乐库。如果用户输入“glory”,那么我想使用搜索 API 返回标题中某处带有“glory”的所有实体。我已经通过将搜索文本添加到“\uFFFD”来实现“开始于”的解决方法,但是,我发现这还不够。我的用户将是非常新手,如果他们不必像在传统搜索中那样选择一个字段,那也会很有帮助。所以全文搜索似乎是解决方案。
这是我的问题:
我的数据存储中的每条记录都应该是一个文档吗?还是把所有的记录放到一个文件中?我有一个非常固定的数据存储大小,只有 1000 条记录。任何人都可以提供正确方法的示例吗?
我想将整个数据存储区实体(它只有 8 个字段)作为我的实体类型的 Iterable 返回。我们是否指定了需要返回的每个字段?这个例子只是说:
for (ScoredDocument scoredDocument : results) {//处理 scoredDocument
有没有人举例说明存储文档的结果?是我们输入的内容还是您必须再次识别每个字段?或者处理 ScoredDocument 返回数据存储实体的示例?
如果有人能帮我填补这些空白,我将不胜感激。
谢谢你和我一起看这个。
最佳答案
What am trying to achieve is a simple %LIKE% query on a few fields
为了实现这一点,您需要“标记化”您的记录名称,GAE 提供了全文搜索,因此为了获得部分匹配,您需要为每条记录添加部分匹配,因此:
如果您的记录名称是“Glory”,您应该添加“G”、“Gl”、“Glo”、“Glor”、“y”、“ry”、“ory”、“lory”的标记
这是我用来提供部分搜索结果的非常基本的实现(仅适用于“开始于”而不实现“结束于”)
public void addField(String name, String value, boolean tokenize) {
addField(Field.newBuilder().setName(name).setText(value));
if (tokenize) {
for (int i = startTokenIndex ; i < value.length() ;i++) {
addField(Field.newBuilder().setName("token" + (lastTokenIndex++))
.setText(value.substring(0, i)));
}
}
}
Should each record in my datastore be a document?
是。您甚至可以将文档 ID 与实体的数据存储区 ID 进行匹配以进行快速匹配。 (或者您可以将其添加为单独的字段)
I would like to return the entire datastore entity (it's only 8 fields) as an Iterable of the type of my entity. Do we specify each field we need to return?
您需要将实体的 ID 存储在文档中,这样当您的搜索返回一组文档时,您只需检索具有这些 ID 的所有实体。
Does anybody have an example of what comes out of the stored document? Is it exactly what we put in or must you identify each field again? Or an example of processes a ScoredDocument returning a datastore entities?
文档返回您存储在其中的所有字段,以及许多数据,如评分、ID 等。您的案例中的“处理”将包括从文档中获取实体 ID。
如果您确定您的记录不会增长到 1000 以上,您几乎可以将所有内容存储在您的搜索索引中。请记住,索引不是为此而设计的,并且在扩展时会面临一些严重的限制,而数据存储显然不会。
关于java - 谷歌搜索 API : Loading all datastore data into document builder for full text search on all records,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16516848/
我正在尝试用我以前的类(class)笔记填充数据存储,以便将来我可以添加评论板或留言簿等笔记。 我似乎无法在数据存储中获取以前的注释,并且一直在翻阅 GAE 文档并在网上搜索无济于事。 这是我的代码:
我得到以下异常: Exception in thread "main" com.google.cloud.datastore.DatastoreException: no matching index
我们有一个在美国和欧盟托管的应用。为了获得出色的性能,我们将在两个位置托管一个数据存储实例。 现在的问题是如何将数据从美国数据存储复制到欧盟数据存储? 或者从技术角度来看,我们将数据存储在哪里并不重要
当我调用 datastore.save 方法时,我偶尔会遇到以下错误: 错误:在/user_code/node_modules/@google-cloud/datastore/node_modules
我正在使用适用于 Datastore (google-cloud-datastore) 版本 1.4.0 的 Python 客户端 SDK。我正在尝试运行仅键查询获取: query = client.
我正在试验 Google App Engine's flexible Python 3 environment and Cloud Datastore .在本地测试时,这(通常)要求在类似 Gunic
Google Cloud Datastore 是否支持计数器等原子操作?我在文档中没有看到任何相关内容,我注意到更新基本上是获取整个对象,更新一个字段,然后将整个对象发送回去,这似乎会使原子操作变得不
我的数据存储实体将具有 embedded entity type 的属性. 在我将它们保存如下后( 我正在使用 gcloud v0.27.0 ): dataset.save([{ key: d
是com.google.cloud.datastore.Datastore线程安全?更具体地说,Datastore 的一个实例可以吗?由多个线程共享,并且它们都可以同时读取/写入云数据存储吗? 换句话
Cloud Dataflow页面暗示这是可能的,但我还没有在 Google Cloud Datastore 文档中找到观察更改事件的方法。它是如何完成的? 最佳答案 据我所知,Cloud Datast
Google Cloud Firestore 将很快取代旧的 Google Cloud Datastore。然后可以选择在“ native 模式”或“数据存储模式”下使用 Cloud Firestor
我是 Datastore 的新手,我正在尝试创建一个简单的应用程序来跟踪图书借阅情况。 我希望数据库架构如下: books: book_id name: borrowing: time
这个问题已经被回答过很多次了,但答案似乎总是在变化。 我正在使用 Java 在 Windows 中工作,并且有一个本地数据存储实例,我希望将其作为生产的副本。 之前有两个答案:- How to cre
如何通过 Google Cloud Datastore 中的 API(Python Protocol Buffer )删除整个祖先树? 例如,如果我将实体存储在此结构中:祖父/父/子,我如何删除祖父,
我想在 Google Cloud Datastore(Datastore 模式下的 Firestore)中保存一部分结构。 以电话簿和联系人为例。 type Contact struct { Ke
我正在尝试看看仅使用 Cloud Functions 与 Datastore 交互是否可行。 有没有一种方法可以仅使用 Cloud Functions 创建复合索引(如 index.yaml)?因此只
我注册了 Firebase 以使用新的 Firestore。 尝试后,我决定,对于我的用例(主要是服务器工具),我不需要 Firestore 的大部分功能,这些功能非常专注于构建用户界面,而且我发现旧
我目前正在使用一台按顺序运行并从命名空间中读取实体的机器执行迁移,这对我来说很痛苦。是否可以使用 Google Cloud Dataflow 更轻松地执行迁移? 最佳答案 您应该能够使用 Datast
我想在 MongoDB 中使用 Grails2.5 中的“ElasticSearch”插件。我的“BuildConfig.groovy”文件是: grails.servlet.version = "3
我想从 Rails 应用程序中使用 Google Cloud Datastore。任何 Ruby 库都可以让这一切变得简单? 最佳答案 您可以使用官方的 Google API Client for R
我是一名优秀的程序员,十分优秀!