0

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

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

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

4

2 回答 2

3

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

于 2013-02-15T06:41:24.313 回答
0

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

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

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

于 2013-02-15T13:19:43.097 回答