转载请声明出处,谢谢
第五章索引
本章涵盖了
•设计模式索引文件
•在schema.xml定义字段和字段类型
•使用结构化数据的字段类型
•处理更新请求,提交和原子更新
•管理xml索引设置
在第三章,我们学习了如何Solr发现文档使用一个反向索引,在其最简单的形式是一个字典的条款和文件的列表,每个词。Solr使用这个索引匹配的术语在用户查询与文档中发生。在这一章中,我们将学习如何Solr流程文档建立索引。索引文件是文本分析的一个关键因素。在这一章中,我们将关注索引过程和非文本字段,保存详细的文本分析,直到第六章讨论。
在本章结束时,你就会知道如何在Solr索引文档,你就会理解重要概念如字段,字段类型和模式设计。作为先决条件,本章将更容易通过如果你有Solr服务器在本地运行示例,我们在第二章。你仍然能够跟随大多数例子运行Solr,如果你喜欢阅读这一章,然后回来做实践活动。
5.1。微博搜索应用程序示例
在本章和下一篇文章中,我们将设计和实现一个索引和搜索文本分析解决方案从流行的社交媒体网站如Twitter微博内容。我们使用微博作为短的通用术语,非正式的消息和其他媒体,人们在社交网络上与彼此分享。微博是微博的例子在Twitter、Facebook帖子,并在Foursquare签到。在这一章中,我们将定义字段和字段类型代表微博在Solr和学习如何增加Solr文档。
在第六章中,我们将学习如何使用内置Solr做文本分析微博内容的工具。让我们开始通过查看文档的类型我们将使用在这个示例中,用户可能想要搜索它们。
5.1.1。代表内容搜索
首先,表5.1显示了一些字段从一个虚构的微博,我们将使用在这一章,了解在Solr索引文件。即使你不感兴趣分析社交媒体内容,通过这个例子中吸取的教训对于大多数搜索应用程序具有广泛的适用性。
表5.1。一个虚构的领域
Solr索引中的每个文档的字段,每个字段都有一个特定的类型,确定如何存储,搜索和分析。在表5.1中,有八个领域我们微博的文档。[1]想想用户可能会发现微博使用这些字段。我们认为screen_name、类型、时间戳、朗,和文本字段是好候选人使用从搜索的角度来看,因为它们包含的信息,一个典型的用户可以使用它来构建一个查询。例如,你可以想象一个用户想要看到所有的英语微博(lang:en)从特定用户(screen_name:thelabdude)后发生的特定日期(时间戳:[2012 - 05 - 01 t00:00:00z *))。
你可以索引所有这些字段,但是如果你开发一个大规模的系统,以支持数以百万计的文档和查询量高,你只想包括将由您的用户搜索的字段。例如,Twitter user_id字段是一个内部标识符,不太可能用户会想在这一领域的搜索。一般来说,每个字段增加索引的大小,所以你应该只包括字段,为用户带来价值。
favorites_count字段的数量最爱的作者推,推不收藏的数量。这个字段是有趣的因为它有有用的信息从用户界面的角度来看,但似乎并不好候选人作为一个参数为一个搜索查询。我们将解决如何处理这些display-oriented字段在5.2节讨论存储与索引字段。
现在,让我们想想用户可能建立一个查询使用这些字段,因为这将帮助我们决定如何表示这些字段在我们Solr索引。图5.1描述了一个虚构的搜索表单根据领域例如微博搜索应用程序。每个字段从搜索的角度,我们确定是有用的表示形式。这是一个关键在设计你的搜索应用程序,您需要考虑用户如何将搜索特定字段的索引;,这将有助于确定如何在Solr中定义的字段。
图5.1。虚构的web表单使用screen_name寻找微博,类型,郎朗,时间戳和文本字段。
现在我们有一个概念性的理解领域我们的示例应用程序,并了解用户将如何使用这些字段搜索文档。接下来,让我们得到一个高级的理解如何添加文档Solr。
5.1.2中所述。Solr索引过程的概述
在高级别上,Solr索引过程最后三个主要任务:
1。原生格式的文档转换成Solr支持的格式,如XML或JSON。
2。将文件添加到Solr使用定义良好的接口之一,典型的HTTP POST。
3。配置Solr转换应用于文档中的文本索引。
Solr索引文档支持多种格式,包括XML、JSON和CSV。在图5.2中,我们选择XML由于其自描述的格式很容易理解。下面是我们的示例推会使用Solr的XML格式。
注意,每个字段表示的XML和语法很简单,你只需要为每个字段定义字段名称和值。你没有看到任何关于文本分析或字段类型。这是因为您定义字段是如何分析的模式。如图5.2所示的xml文档。
回忆在第二章,我们所讨论的Solr提供了一个基本的基于http的接口,所有的核心服务,包括document-update服务添加和更新文档。左上角的图5.2中,我们为例描述发送XML推在Solr中使用HTTP POST document-update服务。我们将详细说说如何添加特定的文件类型,如XML、JSON和CSV在之后的章节。现在,认为document-update服务是一个抽象组件来验证文档中每个字段的内容,然后调用文本分析过程。分析了每个字段后,产生的文本添加到索引,因此可用于搜索文档。
我们将花更多的时间在5.5节索引过程是如何工作的。索引过程的高级概述就足够了,因为我们需要关注更多的基本概念。具体来说,我们需要了解Solr使用模式。图5.2所示的xml索引过程。
这一模式。xml文件定义了字段和字段类型。对于简单的应用程序,这个字段来搜索及其类型可能是显而易见的。一般来说,它可以帮助做一些预先计划你的模式。
5.2。设计模式
微博搜索应用程序与我们的例子,我们鸽子在和定义一个文档是什么和我们想要的字段索引。在实践中,这一过程并不总是显而易见的一个真正的应用程序,所以它可以帮助做一些预先设计和规划工作。
在本节中,我们了解搜索应用程序的主要设计考虑。具体来说,您将了解回答以下有关你的搜索应用程序的关键问题:
•什么是在你的索引文档?
•每个文档惟一确定的怎么样?
•你可以搜索文档字段用户?
•应该显示哪些字段,用户在搜索结果?
让我们开始通过确定适当的粒度的文档在搜索应用程序中,因为这影响你如何回答另一个问题。
5.2.1。文档的粒度
确定你Solr索引的文档应该代表驱动整个schema-design过程。在某些情况下很明显,例如我们推例子;文本内容通常是短暂的,所以每个tweet将一个文档。但是如果内容你想指数大,如技术计算机的书,你可能想要把一个大文档的部分为索引单位。关键是要考虑你的用户想要看到的搜索结果。让我们看一个不同的例子来帮助你思考什么是文档索引。
想象寻找一个网站,卖“文本分析”技术的计算机书籍。如果该网站每本书治疗作为一个单独的文档,用户将看到Solr在行动在搜索结果中,但需要通过目录或索引页找到特定的地方发生在书中“文本分析”。在图5.3中,左侧图像描述了搜索结果看起来如何当一个整本书索引作为一个单独的文档。
图5.3。比较搜索结果当索引整本书作为一个单独的章节文件和索引文件
如果网站对待每本书的个别章节,索引中的文档,然后搜索结果可能显示用户“文本分析”一章Solr行动结果前,可以看到右侧的图5.3。因为文本分析是一个核心概念搜索,然而,大多数在本书的其他章节和其他搜索书籍将是高度相关的搜索结果中。太颗粒会因此压倒韦德通过用户提供太多的结果。
您可能还需要考虑内容的类型你索引,分裂技术的计算机书的章节似乎有意义但分裂一个虚构的小说章节似乎并不是个好方法。最后,这是你的选择是什么造就了一个文件在你的指数,但肯定考虑文档的粒度如何影响用户体验。一般来说,你想让你的文件尽可能细粒度不会造成用户错过了森林”
除了作为一个快速,我们应该注意,Solr提供了一个称为达到突出的特性,允许您突出长文档在搜索结果的相关部分。这是有用的,当你不能长文档分解成更小的单位,但仍然希望帮助用户快速导航到高度相关的部分大型文档。例如,我们可以使用高亮显示简短的文本片段周围“文本分析”这个词在任何文件包含这句话。我们讨论了突出在第9章的深度。
相关推荐
Solr 数据导入调度器(solr-dataimport-scheduler.jar)是一个专门为Apache Solr 7.x版本设计的组件,用于实现数据的定期索引更新。在理解这个知识点之前,我们需要先了解Solr的基本概念以及数据导入处理...
标题中的“Solr in Action -- Apache Solr 在比价系统中的应用”表明本文将深入讨论Apache Solr搜索服务器在比价系统中的实际应用案例。Apache Solr是一个开源的搜索引擎平台,广泛应用于企业级应用中,以提高搜索...
`conf.zip` 文件则包含了 Solr 的配置文件,如上述提到的 `solrconfig.xml` 和 `data-config.xml`,以及其他可能的配置文件,如 `schema.xml`,用于定义字段类型和字段。解压 `conf.zip` 后,这些配置文件将用于指导...
solr-mongo-importer-1.1.0.jar solr-mongo-importer-1.1.0.jar solr-mongo-importer-1.1.0.jar
### Apache Solr 5.1 参考指南详解 #### 一、Apache Solr 概述 Apache Solr 是一个高性能、可扩展的企业级搜索平台,由 Apache Software Foundation 开发和维护。它基于 Java 实现,并且是 Apache Lucene 的一个...
- **配置**:Solr的配置文件在`conf`目录下,包括schema.xml(定义字段和字段类型)、solrconfig.xml(配置索引和查询行为)等。 - **集合与分片**:在分布式环境中,Solr将数据分为多个集合,每个集合可以进一步...
solr-import-export-json最新代码solr-import-export-json最新代码solr-import-export-json最新代码solr-import-export-json最新代码solr-import-export-json最新代码solr-import-export-json最新代码solr-import-...
《Solr In Action》中文版第八章主要探讨的是Solr中的分类搜索,也称为分类导航或分类浏览。分类是Solr的一个强大特性,它允许用户根据一个或多个分类过滤搜索结果,提供更丰富的探索和分析体验。本章涵盖的内容包括...
经过测试可以适用solr7.4版本。如果低版本solr(6.*) 可以直接适用网上的solr-dataimport-scheduler 1.1 或者1.0版本。
5. **测试与监控**:完成配置后,启动Solr服务并测试数据导入是否按预期工作。同时,设置监控机制,确保定时任务正确执行,及时发现并解决问题。 在支持的Solr版本方面,solr-dataimport-scheduler 已经经过实测,...
为了使用这个源码,你需要对Solr的配置文件(如solrconfig.xml)进行修改,添加DIH相关的配置,包括数据源信息、查询语句以及调度器的设置。然后,你可以根据项目中的指导编译源码,生成适合你所用Solr版本的JAR文件...
Apache Solr 是一个开源的全文搜索引擎,广泛应用于各种企业级数据搜索和分析场景。增量更新是Solr的一个关键特性,它允许系统仅处理自上次完整索引以来发生更改的数据,从而提高了性能并降低了资源消耗。"apache-...
在Solr 5.x版本中,为了实现数据的定时更新,用户需要借助特定的扩展来实现定时生成索引。"apache-solr-dataimportscheduler-1.0.zip"是一个官方发布的54l版本,专门针对Solr 5.x的定时索引生成需求。 数据导入调度...
solr 增量更新所需要的包 solr-dataimporthandler-6.5.1 + solr-dataimporthandler-extras-6.5.1 + solr-data-import-scheduler-1.1.2
在给定的压缩包“apache-solr-dataimporthandler-extras-1.4.0.jar.zip”中,主要包含了一个名为“apache-solr-dataimporthandler-extras-1.4.0.jar”的文件,这个文件是Solr的一个重要组件——DataImportHandler...
Apache Solr 是一个开源的全文搜索引擎,由Apache软件基金会维护,是Lucene项目的一部分。它提供了高效、可扩展的搜索和分析能力,广泛应用于企业级的搜索应用中。标题中的"solr-8.11.1-src.tgz"表明这是Apache Solr...
这是我自己反编译fix后,支持solr7.4高版本的定时增量任务(亲测solr7.4),下载下来开箱即用。低版本的没试过,估计低版本的solr配合之前apache-solr-dataimportscheduler-1.0.jar这些能行,不行就试试我这个。
solr-data-import-scheduler-1.1.2,用于solr定时更新索引的jar包,下载后引入到solr本身的dist下面,或者你tomcat项目下面的lib下面
Solr in Action is the definitive guide to implementing fast and scalable search using Apache Solr 4. It uses well-documented examples ranging from basic keyword searching to scaling a system for ...