Python 单个DB列的搜索引擎

Python 单个DB列的搜索引擎,python,mysql,database,search,Python,Mysql,Database,Search,我正在寻找一个搜索引擎,我可以指向我的数据库中的一列,支持拼写更正和“接近”结果等高级功能 现在我只是在用 从其中选择LIKE%% 而且我遗漏了一些结果,尤其是当用户拼写错误时 我已经编写了一些代码,通过拼写检查来修复拼写错误,但我认为可能有一个更好的开箱即用的选项。谷歌提供了很多索引和搜索整个网站的选项,我只需要索引和搜索这个表列。我建议研究Sphynx搜索等开源技术 Apache Solr是一个很棒的搜索引擎,它提供了(1)N-Gram索引(不仅搜索完整字符串,还搜索部分子字符串,这对获得类

我正在寻找一个搜索引擎,我可以指向我的数据库中的一列,支持拼写更正和“接近”结果等高级功能

现在我只是在用

从其中选择LIKE%%

而且我遗漏了一些结果,尤其是当用户拼写错误时


我已经编写了一些代码,通过拼写检查来修复拼写错误,但我认为可能有一个更好的开箱即用的选项。谷歌提供了很多索引和搜索整个网站的选项,我只需要索引和搜索这个表列。

我建议研究Sphynx搜索等开源技术

Apache Solr是一个很棒的搜索引擎,它提供了(1)N-Gram索引(不仅搜索完整字符串,还搜索部分子字符串,这对获得类似结果有很大帮助)(2)提供了一个基于距离度量/编辑距离的现成拼写更正器(这将帮助您获得“你是说芝加哥吗?”当用户在chicaog中键入时)(3)它为您提供了一个现成的模糊搜索选项(模糊搜索帮助您获得查询的接近匹配项,例如,如果用户在GA-123中键入,他将因此获得VMDEO-123)(4)Solr还为您提供了“更像此”组件,它将帮助您完成上述选项

Solr(基于Lucene Search Library)是开源的,正在慢慢崛起,成为搜索(垂直)行业中的事实,并且非常适合数据库搜索(正如您所说的为数据库列编制索引,这是Solr的一条捷径)。Lucene和Solr被许多财富500强公司以及互联网巨头使用

<狮身人面像搜索引擎也很棒(我也喜欢它,因为它对所有东西都有很低的足迹,是基于C++的),但是简单地说,SoR更受欢迎。 现在,Python支持和API都可以使用。然而,Sphinx是一个exe,Solr是一个HTTP。因此,对于Solr,您只需从python程序中调用Solr URL,它将返回结果,您可以将结果发送到前端进行渲染,就这么简单)

到目前为止还不错。关于您的问题:

首先你应该问问自己,你是否真的需要一个搜索引擎?搜索引擎适用于上面提到的所有用例,但实际上是为搜索大量全文数据或百万行表格数据而设计的。你的意思是,类似的记录、拼写更正等算法可以写在上面。在Solr上归零之前,请在谷歌上搜索(1)Peter Norvig拼写更正器和(2)N-Gram索引。可能的情况是,只需编写几行代码,您就可以得到真正需要的东西


我让您自己决定:)

在使用Solr/Sphinx路径进行全文索引(这增加了复杂性和它们自己的开销)之前,如果您正在使用该数据库,您可以尝试PostgreSQL中的内置全文引擎。它的设置很容易,而且性能优于
之类的
查询

退房

你知道吗?我只是通过搜索python找到了它