Webapps:存储和搜索用户提交的文本块

时间:2009-04-11 17:44:13

标签: database google-app-engine web-applications full-text-search

背景:

我正在建立一个包含用户提交内容的诗歌网站。我的问题的相关用户操作是用户可以:

  • 一个。到目前为止,请访问fancysitename.com/view查看所有诗歌
  • 湾转到fancysitename.com/submit提交自己的诗。
  • ℃。请访问fancysitename.com/apoemid查看之前收藏过的特定诗歌。
  • d。访问fancysitename.com/search,在所有诗歌中输入要搜索的单词。

所有诗歌都作为文本字段存储在数据库中,并由诗歌id引用。因此,步骤c中的“apoemid”将成为元组的主键,我只需在从URL获取密钥后提取文本。

问题:

    1. 除了数据库外,这些诗无处可见。我的webapp实际上是4个html文件。这种方法会影响我的搜索引擎排名吗?
    2. 是否有更有效的方法来执行'd'而不是在数据库上执行Select *并手动解析服务器上的文本?每首诗的长度最多为10行,所以我想像使用像卢塞恩这样的全文搜索引擎可能会有点过分。

买者

我现在正在谷歌应用引擎上运行这个,所以我的数据库自定义选项非常有限。因此,虽然我当然有兴趣听到理想的方法,但这是一个宠物方项目所以我的预算有限:(

谢谢!

编辑:显然我早上7点没有谷歌这么好。我已经找到问题2 here的解决方案,所以请忽略问题2。

3 个答案:

答案 0 :(得分:1)

AppEngine目前不支持全文索引,它们确实比没有SearchableModel更好。

SearchableModel的一些细节可以在这里找到:

http://groups.google.com/group/google-appengine/browse_thread/thread/f64eacbd31629668/8dac5499bd58a6b7?lnk=gst&q=searchablemodel

关于搜索引擎排名,是的,您在数据存储区中的所有诗歌都会影响您的排名。这通常通过使用站点地图来克服。这是一篇关于StackOverflow如何使用站点地图来帮助其搜索排名的文章。

http://www.codinghorror.com/blog/archives/001174.html

答案 1 :(得分:0)

在大多数数据库引擎中,您可以完成此类搜索。例如,MysQL确实有全文搜索。我不确定app引擎是如何工作的,但你总是可以通过存储过程进行搜索。

答案 2 :(得分:0)

存储数据的位置不会影响您网站的排名,只会影响您的网站排名(使用哪些网址等)。任意搜索蜘蛛绝对没有办法告诉你存储数据的位置,也没有理由去关注它。

无论文本的长度如何,如果要在字符串中搜索,都需要进行全文搜索。 Sam指出,SearchableModel应该可以正常工作。