Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用python mysql实现搜索引擎?_Python_Mysql_Full Text Search_Search Engine - Fatal编程技术网

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

如何使用python mysql实现搜索引擎?,python,mysql,full-text-search,search-engine,Python,Mysql,Full Text Search,Search Engine,我有一个使用自定义Python脚本创建的MySQL数据库。我需要在数据库中的表上实现全文搜索。我可以使用SELECT*FROM myTable WHERE(标题类似于“%hello%”或标题类似于“%world%”),但是我认为这不是实现搜索的非常有效的方法,因为表中的数据有近一百万行 我使用的是innoDB表,因此内置的MySQL全文搜索MyISAM将无法工作。有没有关于方法或教程的建议可以为我指明正确的方向 我不是MySQL的专家,但我可以马上说,您不应该选择任何类似于值的东西。如果用户键入

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


我使用的是innoDB表,因此内置的MySQL全文搜索MyISAM将无法工作。有没有关于方法或教程的建议可以为我指明正确的方向

我不是MySQL的专家,但我可以马上说,您不应该选择任何类似于值的东西。如果用户键入“and”,并且有数千个结果,那么最好从数据库中选择一定数量的结果,然后在用户转到下一页(例如)时使用LIMIT参数加载更多结果


因此,要回答您的问题,查询效率不高,您应该使用我上面建议的方法。

我不是MySQL专家,但我可以立即说,您不应该选择与值类似的所有内容。如果用户键入“and”,并且有数千个结果,那么最好从数据库中选择一定数量的结果,然后在用户转到下一页(例如)时使用LIMIT参数加载更多结果


因此,要回答您的问题,查询效率不高,您应该使用我上面建议的方法。

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

如果你在做Django,你有Haystack:

Solr也是一种全文搜索相关技术,您可能会读到:


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

如果你在做Django,你有Haystack:

Solr也是一种全文搜索相关技术,您可能会读到:


看一看:。他们建议使用外部搜索引擎,因为在innoDB表中没有真正好的搜索选项

看看:。他们建议使用外部搜索引擎,因为在innoDB表中没有真正好的搜索选项

看起来像的副本:看看这个,关于全文搜索引擎有好的观点。看起来像的副本:看看这个,关于全文搜索引擎有好的观点。谢谢。索尔看起来很有希望,谢谢。索尔似乎很有希望。
SELECT * FROM `myTable` WHERE (`title` LIKE '%hello%' OR `title` LIKE '%world%') LIMIT numberOfValues,startingAtRowNumber