我在Apache
上使用PHP
和MySQL
运行了一个网站。
我希望对MySQL
表格以及.pdf
和.docx
文档中存储的文字实施自定义搜索引擎。
我不确定要使用哪种API。
我查看了Google的Custom Search Engine (CSE)和Elastic Search。我知道,弹性只能在基于Java的服务器上运行,因此我无法沿着这条路走下去。
我知道Elastic可以通过REST api处理我的需求。 Google CSE是否也可以这样做,即搜索存储在数据库表格和PDF中的文本?那里有可能的任何其他自定义搜索API吗?
答案 0 :(得分:2)
Google自定义搜索引擎(在您的案例中为Google Site Search)甚至任何其他网络机器人(例如Nutch)等解决方案只能读取网络方面的内容:浏览器可以访问的内容(没有登录)并通过显示网页的URL(带有标题和文本内容的摘录)对此进行分类。
如果无需登录即可访问所有PDF,docx和网页,则效果非常好。网络应用创建者应该启用它。这并不意味着普通用户可以访问所有人,只需要访问机器人(例如,Springer发布者邀请Google僵尸网站访问几乎所有内容但不是普通浏览器。)
如果您希望搜索服务器只访问数据库的字段,则需要与您的数据库通信。 Google Site Search(Google自定义搜索的一种形式)不允许这样做。 ElasticSearch和Apache Solr允许这样做。但是,出于安全原因,大多数Web托管服务不会从外部访问数据库端口。因此,您可能会看到另一个要求您可能在内部运行搜索服务器。
运行java或Google CSE的要求似乎是不可避免的。我知道在其他语言中没有相同质量的解决方案(例如Drupal可以提供基于MySQL的文本搜索,但它具有低得多的容差)。如今,许多云节点都可以运行java。