零、序言

搜索是当今构建的任何 web 应用程序不可或缺的一部分。无论是内容网站、工作网站、电子商务网站还是任何其他网站,搜索都在帮助用户定位他/她正在寻找的信息方面发挥着非常重要的作用。作为开发人员,必须为网站用户提供所有可能的工具,用于搜索和缩小所需信息的范围。ApacheSolr 是一个全文搜索引擎,它为搜索提供了大量功能。PHP 是构建网站的首选编程语言。本书指导读者如何集成 PHP 和 Solr。

当用户在网站上执行搜索时,他希望结果基于某些标准具有相关性。让我们以一个电子商务网站为例。可以对产品名称、品牌名称、型号和产品类型进行搜索。一旦结果可见,在搜索结果中提供一组关于价格、大小和产品的一些其他特性的方面就很重要了,这些方面可用于将结果缩小到所需的范围。根据用户类型自动完成搜索查询并提供拼写建议是某些网站上可见的一些高级搜索功能。

本书的目的是让人们注意 Solr 向 PHP 开发人员社区提供的这些和许多其他搜索功能,并指导构建这些网站的 PHP 开发人员探索和使用这些搜索功能在其网站中构建与搜索相关的功能。这本书不仅提供了快速开发搜索功能的快速 PHP 代码,而且还深入介绍了该功能在 Solr 端的实际工作方式。高级用户还将讨论 Solr 和 PHP 中的配置和调整选项,以帮助他们根据需求调整功能。

本书将从安装 Solr 开始,使用 PHP 添加、更新和删除 Solr 上的文档,然后探索 Solr 搜索提供的功能。我们将探讨 Solr 提供的特性,如刻面、分组、增强和结果排序。我们将构建 Solr 提供的拼写检查和查询自动完成功能。我们还将介绍缩放搜索的高级功能。这本书将提供一个端到端的实践指南,使用 PHP 和 Solr 构建一个功能齐全的搜索应用程序。

这本书涵盖的内容

第一章安装和集成 Solr 和 PHP介绍 Solr,并在 Windows 和 Linux 环境下安装和集成 Solr 和 PHP。

第 2 章从 Solr插入、更新和删除文档,提供了如何使用 PHP 从 Solr 索引中添加、修改和删除文档的实用示例。

第 3 章选择 Solr 上的查询和查询模式(DisMax/eDiscoveryMax),说明如何在 Solr 上运行基本搜索查询,并使用不同的查询模式运行一些高级搜索查询。

第 4 章高级查询-过滤查询和面处理深入挖掘搜索查询,并提供使用 Solr 和 PHP 运行过滤查询和面处理的实际示例。

第 5 章使用 PHP 和 Solr突出显示结果,解释了如何配置 Solr 以突出显示搜索结果,并提供了 PHP 中突出显示的实际示例。

第 6 章调试和统计组件解释了 Solr 如何计算相关性,对搜索查询结果进行排序,以及如何获得索引统计信息。

第 7 章Solr中的拼写检查将 Solr 配置为拼写检查,并提供使用 PHP 和 Solr 构建的自动完成功能的实际示例。

第 8 章高级 Solr–分组、更像此查询和分布式搜索深入介绍了 Solr 中的一些高级主题,并解释了如何水平扩展 Solr。

这本书你需要什么

您将需要一台 Windows 或 Linux 机器,其中配置了 Apache Web 服务器以运行 PHP 脚本。需要一个用于编写代码的文件编辑器和一个用于检查代码执行输出的 web 浏览器。我们将根据需要下载、安装和配置 Solr。

这本书是给谁的

本书面向需要将搜索构建并集成到应用程序中的 PHP 开发人员。无需事先了解 Solr。了解使用 PHP 进行面向对象编程会有所帮助。读者应该熟悉 web 应用程序的概念。

公约

在这本书中,你会发现许多不同类型的文本可以区分不同类型的信息。下面是这些风格的一些例子,并解释了它们的含义。

文本中的码字如下:“调用createPing()函数创建 ping 查询。”

代码块设置如下:

$config = array(
  "endpoint" => array("localhost" => array("host"=>"127.0.0.1",
"port"=>"8080", "path"=>"/solr", "core"=>"collection1",)
) );

任何命令行输入或输出的编写方式如下:

cd ~/solr-4.3.1/example
java –jar start.jar

新术语重要词语以斜体显示。例如,您在屏幕上、菜单或对话框中看到的单词出现在文本中,如下所示:“从左侧面板的下拉列表中选择collection1【T5]。单击ping,您将看到ping链接旁边以毫秒为单位的 ping 时间。”。

警告或重要注释显示在这样的框中。

提示

提示和技巧如下所示。

读者反馈

我们欢迎读者的反馈。让我们知道你对这本书的看法你喜欢或可能不喜欢什么。读者反馈对于我们开发您真正从中获益最多的标题非常重要。

要向我们发送一般反馈,只需向<[feedback@packtpub.com](mailto:feedback@packtpub.com)>发送电子邮件,并通过邮件主题提及书名即可。

如果您对某个主题有专业知识,并且您有兴趣撰写或贡献一本书,请参阅我们的作者指南,网址为www.packtpub.com/authors

客户支持

既然您是一本 Packt 图书的骄傲拥有者,我们有很多东西可以帮助您从购买中获得最大收益。

下载示例代码

您可以下载您在账户购买的所有 Packt 书籍的示例代码文件 http://www.packtpub.com 。如果您在其他地方购买了本书,您可以访问http://www.packtpub.com/support 并注册,将文件直接通过电子邮件发送给您。

勘误表

虽然我们已尽一切努力确保内容的准确性,但错误确实会发生。如果您在我们的一本书中发现错误,可能是文本或代码中的错误,如果您能向我们报告,我们将不胜感激。通过这样做,您可以使其他读者免于沮丧,并帮助我们改进本书的后续版本。如果您发现任何错误,请访问进行报告 http://www.packtpub.com/support ,选择您的书籍,点击勘误表提交表单链接,输入您勘误表的详细信息。一旦您的勘误表得到验证,您的提交将被接受,勘误表将上传到我们的网站,或添加到该标题勘误表部分的任何现有勘误表列表中。

盗版

在互联网上盗版版权材料是所有媒体的一个持续问题。在 Packt,我们非常重视版权和许可证的保护。如果您在互联网上发现我们作品的任何形式的非法复制品,请立即向我们提供地址或网站名称,以便我们采取补救措施。

请致电<[copyright@packtpub.com](mailto:copyright@packtpub.com)>与我们联系,并提供可疑盗版材料的链接。

我们感谢您在保护我们的作者方面的帮助,以及我们为您带来有价值内容的能力。

问题

如果您对本书的任何方面有疑问,请致电<[questions@packtpub.com](mailto:questions@packtpub.com)>与我们联系,我们将尽力解决。