[关闭]
@tsihedeyo 2015-09-21T16:31:39.000000Z 字数 1409 阅读 2966

Solr in Action 5.1

solr_in_action chapter_5 翻译


本章内容涉及:

  • 为你的索引设定schema
  • 在schema.xml中设定fields以及fieldType
  • 使用fieldTypes
  • 控制update, commits,atomic updates
  • solrconfig.xml中控制index

第三章中我们列举了简单的示例,说明索引的工作原理。本节将描述Solr是如何建立索引的,索引建立的一个关键点在于文本分析,本章着重于索引的处理以及非文本的处理,详细的文本分析将在章节6中讲述。


5.1 微博搜索应用示例


5.1.1 搜索内容

图5.1显示了接下来我们需要在Solr中为之建立索引的文本,即使你可能对社交类搜索不感兴趣,但通过这个例子学到的东西适用于大多数的搜索应用。

表5.1 虚拟的tweet字段

Field Value
id 1
screen_name @thelabdude
type post
timestamp 2012-05-22 09:32:12
lang en
use_id 1232423451225312
favorites_count 10
text #Yummm :) Drinking a latte at Caffé Grecco in SF's historic North Beach... Learning text analysis with #SolrInAction by @ManningBooks on my i-Pad

Solr索引存储的文件都是由一个个字段field组成的,每个field都以fieldType,该类型决定了该字段被存储、分析以及搜索的方式。如表5.1所示,microblog文档包含了8个字段,而真正会用于搜索的字段大概是screen_name,timestamp,type,lang,text。比方说我们可能会想搜索某人某时段发的英文微博。再比如user_id这个字段是用来内部标志的,不大可能被用户搜索所用,所以为了减少不必要的索引存储,这个字段不应该被设置为存储。favorites_count表示该微博被点赞数目,这个也不大可能用于搜索,更倾向被用于前台的可视化UI处理中,对于这种display-oriente字段的处理,我们在5.2节中介绍。

好好字段是否会在用户查询中用到,这会影响到Solr中对字段的处理方式。图5.1为我们预想的用户查询界面,其中就说明了用户查询可能需要用的字段。
图5.1 虚拟的web搜索表单,搜索字段用到了screen_name,timestamp,type,lang,text
!图5.1


5.1.2 Solr索引处理流程概括

Solr索引处理可大致分为:

1.文档转换为Solr支持的格式,XML或者Json
2.Http post提交文档数据
3.配置Solr,解析文档中的文本

图5.2为Solr处理的过程图。
!图5.2

图中我们选用了XML格式来描述数据,其中XML文档意义解读如下:
!列表5.1

章节2中我们就提到过Solr提供了基本的HTTP接口,图5.2的最上部我们就调用了HTTP POT到document_update服务接口,该服务会辨别文档中的字段、之后进行文本分析,当每个字段都被分析完成后,分析的结果会加入index中,至此我们认为该文档已可被搜索。

5.5节将深入讨论建立索引的过程。


添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注