Google 应用引擎:前瞻性搜索对于现实世界应用的效果如何?

发布于 2024-11-27 01:27:02 字数 578 浏览 1 评论 0原文

Google 应用引擎的实验功能中至少已包含预期搜索对于蟒蛇。这种前瞻性搜索与当前可用的全文引擎替代方案有何不同?对于现实世界的网络应用程序(例如产品搜索)来说,它的效率如何。

当前的全文替代方案是

  1. Bill Katz 的解决方案
  2. 基于 Django 的解决方案
  3. gae-text-search,另一个基于 python 的解决方案

Google app engine already has Prospective search in its experimental feature at least for python. How this prospective search is different from currently available full text engine alternatives? How efficient it is for real world web application, say product search.

current full text alternatives are,

  1. Bill Katz's solution
  2. Django based solution
  3. gae-text-search, another python based solution

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

明媚如初 2024-12-04 01:27:02

@Gagandeep Singh:与 'tail -f | 的类比grep' 是一个合理的选择,但是,重要的是要记住 AppEngine 的预期搜索系统支持多个字段和多种类型(整数、浮点数和文本),因此使用 grep 进行复制会有点困难。

@Chris Farmiloe:前瞻性搜索不是通知 API,就像任何其他搜索 API 不是通知 API 一样。当然,您可以使用预期搜索来实现通知系统,但“通知”通常是由于发现匹配而生成的,而不是匹配结果本身。 “通知”系统可以执行诸如发送 IM 消息、SMS、XMPP 消息或类似的操作。预期搜索不会做任何这些事情——但添加起来很容易。

@Nick Johhson:是的,我将其命名为“预期搜索”的原因是因为预期查询与形成查询之后到达的文档相匹配。因此,预期查询是前瞻性的或“前瞻性的”。这与传统的“回顾性”搜索系统(典型的网络搜索引擎或数据库系统)相反,在传统的“回顾性”搜索系统中,查询与在查询形成之前到达并被索引的文档相匹配。回顾性搜索系统对文档、记录或属性包进行索引,然后将其与查询进行匹配。预期搜索系统对查询进行索引,随后将其与文档或属性包进行匹配。这两种搜索模式是基本的、互逆且互补的。几乎在任何有传统回顾性搜索应用程序的地方,您都会找到前瞻性搜索应用程序。

@Drew Sears:请注意,AppEngine 的前瞻性搜索系统与任何回顾性系统一样都是一个“全文”搜索系统。预期搜索匹配单词、短语和数字的布尔组合 - 正如您在传统上所谓的“全文”系统中所期望的那样。区别不在于是否搜索全文,而在于搜索是前瞻性的还是回顾性的。

@Gagandeep Singh: The analogy to 'tail -f | grep' is a reasonable one, however, it is important to remember that AppEngine's Prospective Search system supports multiple fields and multiple types (integer, float, and text) and thus would be a bit difficult to replicate using grep.

@Chris Farmiloe: Prospective Search is NOT a Notification API any more than any other search API is a Notification API. Certainly, you can implement a notification system using Prospective Search, but a "Notification" is usually something that is generated as a result of discovering a match, rather than the result of the match itself. A "Notification" system would do things like send IM messages, SMS's, XMPP messages or something like that. Prospective Search doesn't do any of that -- but it is all easy to add.

@Nick Johhson: Yes, the reason I named it "Prospective Search" is because prospective queries match documents that arrive after one forms a query. Thus, prospective queries are forward-looking or "prospective." This is the inverse of a traditional "retrospective" search system (typical web search engine or database system) in which queries match documents that arrived and were indexed before the query was formed. A retrospective search system indexes documents, records or bags of attributes that are later matched against queries. A prospective search system indexes queries that are later matched against documents or bags of attributes. These two modes of search are fundamental, inverses of each other and complimentary. Almost everywhere that you have an application for traditional retrospective search, you will find an application for prospective search.

@Drew Sears: Please note that AppEngine's Prospective Search system is just as much a "fulltext" search system as any retrospective system might be. Prospective Search matches Boolean combinations of words, phrases and numbers -- just as you would expect in what you have traditionally called a "fulltext" system. The difference isn't in whether or not fulltext is being searched but whether that search is prospective or retrospective.

不顾 2024-12-04 01:27:02

预期搜索基本上相当于 App Engine 中的 tail -f | grep。用户不是针对一组静态文档运行一次查询,而是订阅一组查询,并将新创建的文档与打开的查询进行匹配。如果发生匹配,则会将任务排队,并且在任务内您可以使用 Channel API 用新的查询结果更新用户的浏览器。

前瞻性搜索与全文搜索无关。 App Engine 正在开发一个全文 API,在此 Google I/O 演讲中进行了讨论:

http://www.google.com/events/io/2011/sessions/full-text-search.html

Prospective search is basically the App Engine equivalent of tail -f | grep. Instead of running a query once against a static set of documents, users subscribe to a set of queries, and newly created documents are matched against open queries. If a match occurs, a task is enqueued, and inside the task you might use the Channel API to update the user's browser with new query results.

Prospective search has nothing to do with full text search. There is a full text API in the works for App Engine, discussed in this Google I/O talk:

http://www.google.com/events/io/2011/sessions/full-text-search.html

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文