Python 网站全站搜索

2 投票
1 回答
950 浏览
提问于 2025-04-16 15:58

我在想有没有人能推荐一个类似于Mnogosearch的Python全文搜索引擎。我想让它像Mnogosearch那样工作,但不太确定和其他选择相比怎么样(是否有更好的选择)。

比如说,Haystack似乎在索引你指定的Django模型字段方面做得很好,但我不确定它是否能搜索整个网站的内容。

Solr/Lucene看起来很有前景,但我对它不是很熟悉。Whoosh似乎也是一个有趣的选择,但我在想Python的实现会不会让它变得更慢?

我对搜索还很陌生,所以想搞清楚不同的选择。有没有人对哪些搜索技术在索引整个网站时效果好有好的看法?

谢谢阅读,任何评论都非常感谢。

Joe

1 个回答

2

在我看来,Solr可能是性能和功能上最好的选择,而且它是基于经过严格测试的技术。如果你在找一个纯Python的解决方案,Whoosh看起来也不错——我没有在生产环境中使用过它,只是简单了解了一下代码。虽然它可能会慢一点,但对于搜索功能流量较小的网站来说,我觉得这个速度差异不会太明显。Whoosh有一个不错的功能,就是它实现了BM25F算法,可以考虑网站的结构,比如标题、头部、正文和底部等,这在通用的网页搜索模型中被认为是最先进的。

如果你在使用Django,按照我所知道的,Haystack可以让你像更换数据库一样更换搜索引擎的后端。

我不太确定你说的“整个网站内容”具体指的是什么。如果你网站的大部分页面内容不是从模型内容生成的,那么使用一个集成的搜索索引可能不是最佳选择,或许可以考虑像IndexTank或者Google站内搜索这样的方案。但如果情况正好相反,我会推荐使用Haystack,特别是如果你对搜索技术不太熟悉,它会让你的工作变得简单很多。

撰写回答