【问题标题】:Webapps: Storing and searching through user submitted blocks of textWebapps:存储和搜索用户提交的文本块
【发布时间】:2010-10-18 22:29:59
【问题描述】:

背景:

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

  • 一个。去 fancysitename.com/view 看看到目前为止所有的诗
  • 乙。去 fancysitename.com/submit 提交你自己的诗。
  • c。前往 fancysitename.com/apoemid 查看您之前收藏的特定诗歌。
  • d.转到 fancysitename.com/search 输入要在所有诗歌中搜索的单词。

所有诗歌都作为文本字段存储在数据库中,并由诗歌 ID 引用。所以步骤 c 中的“apoemid”将是元组的主键,我将在从 url 获取键后拉出文本。

问题:

    1. 这些诗只存在于数据库中。我的 webapp 实际上是 4 个 html 文件。这种方法会影响我的搜索引擎排名吗?
    2. 有没有比在数据库上执行 Select * 并在服务器上手动解析文本更有效的方法来执行“d”?每首诗最多 10 行,所以我想使用像卢塞恩这样的全文搜索引擎可能会有点矫枉过正。

警告

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

谢谢!

编辑:显然我早上 7 点用 Google 搜索的时候不太好。我已经找到了问题 2 here 的解决方案,所以请忽略问题 2。

【问题讨论】:

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


    【解决方案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

    【讨论】:

    • 谢谢,codinghorror 链接正是我想要的。有趣的是,我以前读过它,但忘记了在哪里,在谷歌(讽刺)中寻找它并没有帮助:)
    【解决方案2】:

    在大多数数据库引擎中,您都可以完成这种搜索。例如,MySQL 确实有全文搜索。我不确定应用引擎是如何工作的,但您始终可以使用存储过程进行此搜索。

    【讨论】:

      【解决方案3】:

      您存储数据的位置不会影响您网站的排名,只会影响您提供数据的方式(在哪些 URL 上等)。任意搜索蜘蛛绝对无法告诉您存储数据的位置,也没有理由关心它。

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-08-31
        • 1970-01-01
        • 2012-05-05
        • 2018-01-28
        相关资源
        最近更新 更多