- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我需要为客户创建一个搜索工具,作为新项目的一部分。记录将是在一个或多个特定日期发生的事情。很高兴获得 SO 的建议,了解哪些工具最适合满足以下要求:
我目前的想法是:
我主要担心的是从各种服务 (Redis/CloudSearch) 中提取可能有数千个 ID,然后必须在客户端代码中合并它们的延迟。然而,这也许是没有根据的。
我希望可能有一个我错过的技术堆栈可以为我解决很多问题。我不想重新发明轮子。
欢迎提出任何建议!
最佳答案
我建议您使用 Amazon CloudSearch 来满足您的要求:
- Needs to (multi-faceted) search tens of thousands of records (based on fields such as category, date, price etc)
CloudSearch 在多方面搜索方面非常出色。它在亚马逊自己的网站上被广泛使用。而且它的过程非常快。搜索索引保存在内存中,以确保能够以非常高的速率处理请求。
- Needs to search on multi-value fields (i.e. tags)
没问题(对于任何搜索引擎)
- Needs to be able to order by static factors (such as price, distance etc)
没问题(对于任何搜索引擎)
- Needs to be able to order by dynamic / frequently changing factors (such as user engagement / traffic etc)
您可以在 CloudSearch 中设置“公式”。它将使您的请求排名更高或更低。它通常用于:- 通过提高基于发布日期的结果排名来提供“新鲜”内容。- 提升受欢迎的结果
CloudSearch 非常擅长这项任务。所以它看起来很适合你。
- Needs to be able to only return records for which there has been activity in the user's own social network (i.e. 'only show me results my friends have engaged with').
我想这没问题。
- Will be deployed in EC2
CloudSearch 的胜利。您的请求将保留在亚马逊网络中。让您请求比通过互联网更快。
My main concern is the latency of pulling back perhaps many thousands of IDs from various services (Redis/CloudSearch)
CloudSearch 不会减慢速度。基于负载it might automatically :更新硬件(更大的实例),启动新实例,跨实例拆分数据。
或许您可以从 Amazon 换成 SimpleDB 而不是 Redis?它将使您轻松扩展。但是在使用 Amazon Cloud Search(或任何搜索引擎数据库)时使用其他数据库的情况并不少见。
Perhaps do the bulk of the work in an RDBMS, with CloudSearch for full-text searching? Maybe. But be carefull RDBMS don't scale up as easily as Cloud Search.
顺便说一句,它是Amazing Cloud Search的创造者但我不为 Amazon Cloud Search 工作 :-)我只是觉得这项技术真的很棒(当它满足您的需要时)。
希望对您有所帮助。希望它不会太乱。
关于search - 对多方面搜索软件栈的建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18739604/
我在我的应用程序中使用 Hibernate Search。其中一个子集合被映射为 IndexedEmbedded。子对象有两个字段,一个是 id,另一个是日期(使用日期分辨率到毫秒)。当我搜索 id=
The App Engine Search API有一个 GeoPoint 字段。可以用它来进行半径搜索吗?例如,给定一个 GeoPoint,查找位于特定半径内的所有文档。 截至目前,它看起来像 Ge
客户对我正在做的员工管理项目提出了这个新要求,以允许他们的用户进行自定义 bool 搜索。 基本上允许他们使用:AND、OR、NOT、括号和引号。 实现它的最佳方法是什么?我检查了 mysql,它们使
很想知道哪个更快 - 如果我有一个包含 25000 个键值对的数组和一个包含相同信息的 MySQL 数据库,搜索哪个会更快? 非常感谢大家! 最佳答案 回答这个问题的最好方法是执行基准测试。 关于ph
我喜欢 smartcase,也喜欢 * 和 # 搜索命令。但我更希望 * 和 # 搜索命令区分大小写,而/和 ?搜索命令遵循 smartcase 启发式。 是否有隐藏在某个地方我还没有找到的设置?我宁
我有以下 Marklogic 查询,当在查询控制台中运行时,它允许我检索具有管理员权限的系统用户: xquery version "1.0-ml"; import schema namespace b
我希望当您搜索例如“A”时,所有以“A”开头的全名都会出现。因此,如果名为“Andreas blabla”的用户将显示 我现在有这个: $query = "SELECT full_name, id,
我想在我的网站上添加对人名的搜索。好友列表已经显示在页面上。 我喜欢 Facebook 这样做的方式,您开始输入姓名,Facebook 只会显示与查询匹配的好友。 http://cl.ly/2t2V0
您好,我在我的网站上进行搜索时遇到此错误。 Fatal error: Uncaught Error: Call to undefined function mysql_connect() in /ho
声明( 叠甲 ):鄙人水平有限,本文为作者的学习总结,仅供参考。 1. 搜索介绍 搜索算法包括深度优先搜索(DFS)和广度优先搜索(BFS)这两种,从起点开始,逐渐扩大
我正在为用户列表使用 FuturBuilder。我通过 futur: fetchpost() 通过 API 获取用户。在专栏的开头,我实现了一个搜索栏。那么我该如何实现我的搜索栏正在搜索呢? Cont
我正在使用 MVC5,我想搜索结果并停留在同一页面,这是我在 Controller (LiaisonsProjetsPPController) 中执行搜索操作的方法: public ActionRes
Azure 搜索中的两种方法 Upload 与 MergeOrUpload 之间有什么区别。 他们都做完全相同的事情。即,如果文档不存在,它们都会上传文档;如果文档已经存在,则替换该文档。 由于这两种
实际上,声音匹配/搜索的当前状态是什么?我目前正在远程参与规划一个 Web 应用程序,该应用程序将包含和公开记录的短音频剪辑(最多 3-5 秒,人名)的数据库。已经提出了一个问题,是否可以实现基于用户
在商业应用程序中,具有数百个面并不罕见。当然,并非所有产品都带有所有这些标记。 但是在搜索时,我需要添加一个方面查询字符串参数,其中列出了我想要返回的所有方面。由于我事先不知道相关列表,因此我必须在查
当我使用nvcc 5.0编译.cu文件时,编译器会为我提供以下信息。 /usr/bin/ld: skipping incompatible /usr/local/cuda-5.0/lib/libcud
我正在使用基于丰富的 Lucene 查询解析器语法的 Azure 搜索。我将“~1”定义为距离符号的附加参数)。但我面临的问题是,即使存在完全匹配,实体也没有排序。 (例如,“blue~1”将返回“b
我目前有 3 个类,一个包含 GUI 的主类,我在其中调用此方法,一个包含数据的客户类,以及一个从客户类收集数据并将其放入数组列表的 customerList 类,以及还包含搜索数组列表方法。 我正在
假设我有多个 6 字符的字母数字字符串。 abc123、abc231、abc456、cba123、bac231 和 bac123 。 基本上我想要一个可以搜索和列出所有 abc 实例的选择语句。 我只
我有这个表 "Table"内容: +--------+ | Serial | +--------+ | d100m | <- expected result | D100M | <- expect
我是一名优秀的程序员,十分优秀!