2014-01-15 57 views
0

我正在努力寻找为我的网站创建搜索引擎的最佳方式。所有需要搜索的项目都在mysqli数据库中,但我也在数据库中有需要从搜索中排除的表格(即用户信息,导航菜单表格等)。到目前为止,我唯一提出的解决方案是单独搜索每个表中的关键字,然后显示结果。 有没有更简单的方法来做到这一点?我想有一个“表组”或类似的东西,所以我的查询可以是这样的:试图为我的网站建立一个搜索引擎

SELECT * FROM table_group WHERE any_column LIKE “%search_string%” 

该数据库拥有约30桌的权利,但可以动态添加表,这将成长为网站使用更多。什么是最好的方式去做这件事?

+0

我建议您使用Sphinx http://sphinxsearch.com/或Elasticsearch http://www.elasticsearch.org/进行全文搜索。对这些技术进行研究 –

+0

您可以在您的网站上使用[Google Custom Search Engine](http://www.google.com/coop/cse/)。 –

回答

0

如果你想追求创建一个搜索引擎查询数据库的想法,我认为你必须查询数据库的元数据:表的列表和每个表的字段列表。

但是,这很难遵循,因为最后你必须以可打印的视图向用户呈现信息:找到一个合适的名称是不一样的(因此你必须提供页面userInfo。 php-向用户说一个例子)或公司名称(因此你必须提供一个完全不同的页面)

我认为至少你必须根据你所拥有的页面创建搜索元素这意味着您必须创建一个包含搜索引擎信息的表格:如何显示此信息,以及它应在哪些表格/字段中进行搜索等。

即使会有技巧。如果用户搜索“smyth”?搜索引擎是否足够聪明以返回“史密斯”?如果你有两个字段,一个名字和其他机智的姓氏,会发生什么用户键入“约翰史密斯”?