开发者

Google app engine : How effective prospective search is for real world application?

开发者_StackOverflow中文版

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


@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.


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

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜