如何使用python mysql实现搜索引擎?

问题描述 投票:0回答:3

我有一个使用自定义Python脚本创建的MySQL数据库。我需要在数据库中的表上实现全文搜索。我可以使用SELECT * FROM myTable WHERE (title LIKE '%hello%' OR title LIKE '%world%'),但我不认为这是一种非常有效的实现搜索的方式,因为表中的数据有近一百万行。

我正在使用innoDB表,因此内置的MySQL MyISAM全文搜索将无法正常工作。有关方法或教程的任何建议都会指引我朝着正确的方向前进吗?

python mysql full-text-search search-engine
3个回答
4
投票

如果您的数据是内容,您可以使用一些像Lucene这样的全文搜索特定引擎:

http://lucene.apache.org/pylucene/

如果你正在做Django你有Haystack:

http://haystacksearch.org/

Solr也是您可能阅读的全文搜索相关技术:

http://wiki.apache.org/solr/SolPython


0
投票

我不是MySQL的专家,但我可以立即说你不应该选择与价值相似的一切。如果用户输入“和”,并且有数千个结果,则最好从数据库中选择一定量,然后在用户进入下一页时使用LIMIT参数加载更多(例如)。

SELECT * FROM `myTable` WHERE (`title` LIKE '%hello%' OR `title` LIKE '%world%') LIMIT numberOfValues,startingAtRowNumber

所以要回答你的问题,查询效率不高,你应该使用我上面建议的东西。


0
投票

看看:Fulltext Search with InnoDB。他们建议使用外部搜索引擎,因为在innoDB表中搜索没有很好的选择。

© www.soinside.com 2019 - 2024. All rights reserved.