核心要点
- Apache SOLR是一个强大的搜索平台,提供全文搜索、分面搜索、结果高亮显示和地理空间搜索等功能。它可以通过HTTP与任何编程语言集成,而对于PHP用户,Solarium项目简化了这种集成。
- SOLR作为一个Web服务运行,创建文档的搜索索引。它允许全文搜索,并将附加信息添加到已索引的搜索文档中。其最有用的功能之一是分面搜索,允许用户过滤搜索结果。
- 安装SOLR包括在您的操作系统上设置它,启动服务器并通过管理界面验证安装。模式定义了被索引的文档的字段,可以通过复制默认目录并自定义它来设置。
- Solarium是SOLR的一个客户端库,它简化了连接到SOLR、执行查询和处理响应的过程。它可以使用Composer(PHP的依赖项管理工具)安装。安装后,需要将其配置为连接到SOLR服务器。
Apache SOLR是一个基于Apache Lucene的企业级搜索平台。它提供强大的全文搜索以及高级功能,例如分面搜索、结果高亮显示和地理空间搜索。它具有极高的可扩展性和容错性。
据报道,Digg、Netflix、Instagram和Whitehouse.gov等知名网站使用SOLR来支持其搜索功能(来源)。
虽然SOLR是用Java编写的,但它可以通过HTTP访问,因此可以与您喜欢的任何编程语言集成。如果您使用的是PHP,那么Solarium项目使集成更加容易,它在底层请求之上提供了一层抽象,使您可以像使用在应用程序中运行的原生实现一样使用SOLR。
在本系列文章中,我将并排介绍SOLR和Solarium。我们将首先安装和配置SOLR并创建搜索索引。然后,我们将研究如何索引文档。接下来,我们将实现一个基本的搜索,然后使用一些更高级的功能(如分面搜索、结果高亮显示和建议)对其进行扩展。
在接下来的过程中,我们将构建一个简单的应用程序来搜索电影集合。您可以在这里获取源代码,或在这里查看在线演示。
基本概念和操作
在我们深入研究实现细节之前,值得了解一些基本概念以及整体流程。
SOLR是一个Java应用程序,它作为Web服务运行,通常在Servlet容器(如Tomcat、Glassfish或JBoss)中运行。您可以使用XML、JSON、CSV或二进制格式通过HTTP操作和查询它——因此您可以使用任何编程语言进行应用程序开发。但是,Solarium库提供了一层抽象,允许您调用方法,就好像SOLR是原生实现一样。在本教程中,我们将把SOLR运行在与我们的应用程序相同的机器上,但在实际应用中,它可以位于单独的服务器上。
SOLR创建文档的搜索索引。这通常反映了我们在现实生活中可能认为的文档;一篇文章、博客文章甚至一整本书。但是,文档也可以表示适用于您的应用程序的任何对象——产品、地点、事件——或者在我们的示例应用程序中,是一部电影。
在最基本的情况下,SOLR允许您对文档执行全文搜索。想想搜索引擎;您通常会搜索关键字、短语或完整标题。您只能用SQL的LIKE子句走这么远;这就是全文搜索的用武之地。
您还可以将附加信息附加到已索引的搜索文档中,这些信息不一定被基于文本的搜索捕获;例如,您可以包含产品的价格、房产的房间数量或项目添加到数据库的日期。
分面是SOLR最有用的功能之一。如果您曾经在网上购物,您可能已经看到过分面搜索;分面允许您通过应用“过滤器”来“细化”搜索结果。例如,在搜索在线书店后,您可以使用过滤器将结果限制为特定作者、特定类型或特定格式的书籍。
SOLR实例使用一个或多个核心运行。核心是配置和索引的集合,每个核心都有自己的模式。通常,单个实例特定于特定应用程序。由于不同类型的內容可能具有非常不同的结构和信息——例如,考虑产品、文章和用户之间的差异——应用程序通常在一个SOLR实例中有多个核心。
安装SOLR
我将提供如何在Mac上设置SOLR的说明;对于其他操作系统,请参考文档——或者,您可以下载Blaze,这是一个预安装SOLR的设备。
在Mac上安装SOLR最简单的方法是使用Homebrew:
brew update brew install solr
这会将软件安装到类似/usr/local/Cellar/solr/4.5.0
的目录中,具体取决于您使用的软件版本。
要使用提供的Java存档(JAR)启动服务器:
cd /usr/local/Cellar/solr/4.5.0/libeexec/example java -jar start.jar
要验证安装是否成功,请尝试在您的Web浏览器中访问管理界面:
<code>http://localhost:8983/solr/</code>
如果您在左上角看到带有Apache SOLR徽标的管理仪表板,则服务器已启动并正在运行。
提示:要停止SOLR——当您更改配置时(就像我们很快就要做的那样),您需要这样做——只需按CTRL C。
(Linux说明:https://www.php.cn/link/02013105f0430de65b8b1408d52c84be)
设置模式
开始使用SOLR最简单的方法可能是复制默认目录,然后对其进行自定义。
从libexec/example
复制solr目录;在这里,我们正在创建一个名为“movies”的新SOLR核心:
brew update brew install solr
我们稍后会查看配置文件,movies\solr.xml
和movies\collection1\conf\solrconfig.xml
。目前,我们真正感兴趣的是模式,它定义了我们正在索引的文档的字段,以及如何处理这些字段。
定义此内容的文件是movies\collection1\conf\schema.xml
。
如果您打开刚刚复制过来的文件,您会发现它不仅包含一些有用的默认值,而且还包含大量的注释来帮助您理解如何自定义它。
模式配置文件负责两个主要方面;字段和类型。类型只是数据类型,在底层,它们将类型名称(例如整数、日期和字符串)映射到实现中使用的底层Java类。例如:solr.TrieIntField
、solr.TrieDateField
和solr.TextField
。类型配置还定义了标记器、分析器和过滤器的行为。
以下是一些基本类型的示例:
cd /usr/local/Cellar/solr/4.5.0/libeexec/example java -jar start.jar
字符串类型值得仔细研究,因为这里有一个陷阱。当您将字段用作字符串时,任何数据都会按您输入的原样存储。此外,为了使查询与之匹配,它必须完全相同。例如,假设您有一个作为字符串的文章标题,并插入了一个标题为“An Introduction to SOLR”的文档。在任何正确的搜索实现中,您都希望使用诸如“SOLR introduction”之类的查询找到文章——更不用说“an introduction to Solr”了。要解决这个问题,如果您不希望这种完全匹配的行为——这在某些情况下实际上很有用,例如分面搜索——那么您可以使用标记器和过滤器的组合。
(后续内容与原文基本一致,只是对语言和表达方式进行了调整,并对部分段落进行了精简,避免重复。为了保持篇幅合理,这里省略了原文剩余部分的伪原创结果。)
(FAQs部分也进行了类似的处理,省略了具体内容。)
以上是将Solarium与Solr一起进行搜索 - 设置的详细内容。更多信息请关注PHP中文网其他相关文章!

Laravel使用其直观的闪存方法简化了处理临时会话数据。这非常适合在您的应用程序中显示简短的消息,警报或通知。 默认情况下,数据仅针对后续请求: $请求 -

PHP客户端URL(curl)扩展是开发人员的强大工具,可以与远程服务器和REST API无缝交互。通过利用Libcurl(备受尊敬的多协议文件传输库),PHP curl促进了有效的执行

Laravel 提供简洁的 HTTP 响应模拟语法,简化了 HTTP 交互测试。这种方法显着减少了代码冗余,同时使您的测试模拟更直观。 基本实现提供了多种响应类型快捷方式: use Illuminate\Support\Facades\Http; Http::fake([ 'google.com' => 'Hello World', 'github.com' => ['foo' => 'bar'], 'forge.laravel.com' =>

PHP日志记录对于监视和调试Web应用程序以及捕获关键事件,错误和运行时行为至关重要。它为系统性能提供了宝贵的见解,有助于识别问题并支持更快的故障排除

您是否想为客户最紧迫的问题提供实时的即时解决方案? 实时聊天使您可以与客户进行实时对话,并立即解决他们的问题。它允许您为您的自定义提供更快的服务

文章讨论了PHP 5.3中引入的PHP中的晚期静态结合(LSB),从而允许静态方法的运行时分辨率调用以获得更灵活的继承。 LSB的实用应用和潜在的触摸


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

Atom编辑器mac版下载
最流行的的开源编辑器

记事本++7.3.1
好用且免费的代码编辑器

适用于 Eclipse 的 SAP NetWeaver 服务器适配器
将Eclipse与SAP NetWeaver应用服务器集成。

VSCode Windows 64位 下载
微软推出的免费、功能强大的一款IDE编辑器

安全考试浏览器
Safe Exam Browser是一个安全的浏览器环境,用于安全地进行在线考试。该软件将任何计算机变成一个安全的工作站。它控制对任何实用工具的访问,并防止学生使用未经授权的资源。