0

我需要您的意见...我正在 PHP 和 MYSQL(AZURE 环境)中开发应用程序。我在 MYSQL 中为该应用程序编写了一个搜索引擎。搜索引擎应该索引页面。每个页面都被“拆分”为单词,并且为每个单词创建一个包含该单词出现的所有地址的表。

例如,如果客户端查找单词“tablet”,应用程序会访问一个名为“tablet”的表,并将提取表中的所有地址。如果您正在搜索这两个词,则检索两个相关表的所有地址并执行切割每个地址。

问题是至少 10 000 个单词,即 10 000 个表。DATABASE中是否存在大量表的问题?使用微软的云服务器(AZURE)是否改善了这种情况?DATABASE 是在写入分配云中的表还是只是让它们和云处理这个并为我安排它们?

4

2 回答 2

0

您正在做的是复制倒排索引模式已经做的事情。您应该查看 Lucene (java) 或 lucene.net (.net) 以获得非常成熟的索引实现,它是开源的。

正如上面提到的,每个单词都有一个表格(在 lucene 中称为一个术语)是不可扩展的。

于 2012-10-30T20:56:17.640 回答
0

您应该考虑为您进行索引的解决方案。Apache Lucene 就是其中之一http://lucene.apache.org/core/如果您使用的是 PHP,也有这种语言的实现(framework.zend.com)

我还建议使用 Sphinx Search http://sphinxsearch.com。这是一个很棒的工具,可以为你做索引。它将索引数据库中的数据,并提供一个可以在 ANSI SQL 中查询的接口。

于 2012-10-30T21:00:59.070 回答