哪个自定义搜索引擎?

Which custom search engine?

我在 Apache 上有一个 运行ning 网站 PHPMySQL

我希望对存储在 MySQL table 以及 .pdf.docx 文档中的文本实施自定义搜索引擎。

我不确定选择哪个 API。

我看过Google的Custom Search Engine (CSE) and Elastic Search。我了解到,Elastic 只能在基于 Java 的服务器上 运行,因此我无法走这条路。

我知道 Elastic 可以通过其 REST api 处理我的需求。 Google CSE 是否能够执行相同的操作,即搜索存储在数据库 table 和 PDF 中的文本?还有其他可能的自定义搜索 API 吗?

Google 自定义搜索引擎(在您的情况下为 Google 站点搜索)或什至任何其他网络机器人(例如 Nutch)等解决方案只会读取 web-side 的东西:什么可以通过浏览器访问(未登录)并通过 URL 显示 web-pages(带有标题和文本内容的摘录)对其进行分类。

如果所有 PDF、docx 和 web-pages 无需登录即可访问,则效果非常好。 web-app 创建者应该启用它。这并不意味着普通用户可以访问所有内容,只能访问机器人(例如,Springer 发布者邀请 Google 机器人访问几乎所有内容,但不是普通浏览器)。

如果您希望搜索服务器仅访问您数据库的字段,它需要与您的数据库对话。 Google 站点搜索(Google 自定义搜索的一种形式)不允许这样做。 ElasticSearch 和 Apache Solr 允许这样做。但是,出于安全原因,大多数网络托管服务都不允许从外部访问数据库端口。因此,您可能会看到 运行 本地搜索服务器的另一个要求。

运行 java 或 Google CSE 的要求似乎是不可避免的。我知道在其他语言中没有相同质量的解决方案(例如,Drupal 可以提供 MySQL-based 文本搜索,但它的容忍度要低得多)。现在很多云节点都可以运行java.