【问题标题】:How to search value that often change with Cloudsearch?如何搜索经常随 Cloudsearch 变化的值?
【发布时间】:2018-07-12 12:39:33
【问题描述】:

我是Cloudsearch 的新手,我的问题可能不清楚,所以我会尝试解释我的问题。

我们有一个后台,很多人都在做研究,有时我们的数据库是 KO,因为一些请求需要 30 多秒才能执行,所以我们决定使用Cloudsearch,因为我们已经使用了其他一些Amazon web service .

所以我创建了一个搜索域,根据我们在当前数据库中搜索的值创建了索引,并根据我们的测试数据库索引了我们所有的事件(人们搜索的结果)( ~ 42 000 行)。

我的问题是每个事件在我们的数据库中有多个媒体(.jpg、.gif 和 .mp4)(我们正在从 v3 迁移到 v4,所以有是两个媒体数据库,我们需要知道事件版本才能知道我们应该在哪里搜索:​​旧数据库还是新数据库)所以我的问题:我可以使用 Cloudsearch 返回一些媒体信息,否则我仍然需要使用 mysql请求?

现在我们返回数据库中的最后一个媒体添加(因此如果事件正在运行,他可以更改很多时间)和该事件的媒体总数(也可以经常更改)。

我认为可行的方法:

  • 我可以在我的事件索引中添加两个字段(媒体数量 + 最后一个媒体的 url)并创建一个批处理文件来添加/更新事件数据每次我们在数据库中添加新媒体时:问题是我们可以每 10 秒发送 1 批,每天最多发送 10 000 批,所以如果我们有 50 个事件同时运行,这可能是个大问题...
  • 与之前的想法相同,但我们使用 CRON 每小时创建一个包含所有最后数据的批处理文件:问题是研究不会在批处理之前进行...并且最大批处理大小为 5 MB所以这可能没问题,但如果我们有很多新数据要添加,这可能是个小问题。
  • 目前的想法是使用我们从 cloudsearch 研究中获得的每个事件 id 执行 mysql 请求并返回这些信息,但我发现如果我们更改为 Cloudsearch 仍然使用 mysql 有点愚蠢...

我看到了“Using Dynamic Fields in Amazon Cloudsearch”的文档,但我认为它没有达到我想要达到的效果......也许我误解了一些东西,但如果有人可以帮助我了解如何以最好的方式做到这一点,我将不胜感激。

【问题讨论】:

  • 动态字段允许您使 字段名称 本身是动态的。因此,您可以随时通过匹配模式来添加新字段。例如,我为*_dbl 设置了一个字段映射,将其映射为双精度。然后,每当我需要添加具有十进制值的字段时,它都会类似于 price_dblpopularity_dbl,我不必为这两个字段创建显式字段映射。

标签: php mysql amazon-web-services amazon-cloudsearch


【解决方案1】:

我是否可以使用 Cloudsearch 返回一些媒体信息,或者我仍然需要使用 mysql 请求?

如果您问是否可以在 CloudSearch 中存储.mp4.jpg 等媒体文件,答案是否定的。您可以存储文本、数字、日期和 latlong 坐标(或任何这些的数组,latlong 除外)。

我认为处理媒体的传统方法是将媒体的 URL/路径索引为文本字段。

参考:AWS Cloudsearch Documentation - Configuring Index Fields

【讨论】:

  • 这不是我真正问的,如果我不够清楚,抱歉。想象一下我有 XX 事件,在每个事件中人们都会有媒体(图像、gof 或视频)。因此,对于每个事件,我们的数据库中的“visible_last_media”会经常更改:如何在 Cloudsearch 中添加这些数据?我需要经常更新我的字段“last_media”(例如,每个事件每 2 分钟更新一次),所以我寻找一个好方法来做到这一点
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多