【问题标题】:Search engine from scratch [closed]从头开始搜索引擎[关闭]
【发布时间】:2016-12-05 05:33:51
【问题描述】:

我有一个 MySQL 数据库,其中包含大约 10,000 篇文章,但这个数字可能会随着时间的推移而增加。我希望能够搜索这些文章并根据一些关键字提取最相关的结果。我知道有许多我可以插入的项目基本上可以为我做到这一点。但是,此应用程序非常简单,如果能够直接控制和了解整个事情的运作方式,那就太好了。因此,我想研究一下用 Python 从头开始​​构建一个非常简单的搜索引擎。

我什至不知道从哪里开始,真的。我可以将 MySQL DB 中的所有内容转储到一个列表中,并尝试根据相关性对该列表进行排序,但这似乎会很慢,并且随着数据库项目数量的增加而变慢。我可以使用一些基本的 MySQL 搜索来从 MySQL 的想法中获取前 100 个最相关的结果,然后对这 100 个进行排序。但这是一个两步过程,可能效率较低,如果文章刚刚发表,我可能会错过一篇文章范围。

我可以采取哪些最佳方法?

【问题讨论】:

  • 我敢打赌,谷歌有很多 的起点。到目前为止,你尝试过什么?
  • 我什么都没试过,因为我只是在计划我的方法。我发现的东西都使用纯 MySQL 搜索,或者将文章转储到列表中并进行排序。

标签: python mysql search search-engine


【解决方案1】:

为 10,000 篇文章做“搜索引擎”的最佳选择是阅读 Toby Segaran 的“Programming Collective Intelligence”。精彩阅读并节省您的时间,请参阅 2007 年 8 月号的第 4 章。

【讨论】:

  • 谢谢,我会努力找到这个的。
【解决方案2】:

如果您不介意用其他东西替换 MySQL 数据库,那么我建议使用 elasticsearch,使用 pyes

它具有您期望的搜索引擎的功能,包括全文搜索、出色的性能、分页、更像这样、可插件的评分算法,并且是实时的 - 所以当添加更多数据时,它会立即显示在搜索结果中。

如果您不想删除当前数据库,那么您可以轻松地并行运行它们,并将 MySQL 视为主数据库。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-03-31
    • 1970-01-01
    • 1970-01-01
    • 2010-11-29
    • 2020-09-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多