欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

solr Document,Fields,Schema设计概况

程序员文章站 2022-04-24 15:42:19
...

翻译自 Apache Solr Reference Guide 

 

solr一个最基本的设计原则是简洁, 你告诉他很多信息,然后问他一些问题,他会给你回答的一段信息,你喂给他的这部分叫做 indexing, 你问他的问题叫做 query。

一个理解solr的方法是举个例子,我们用一个美食的活页本,每一次你加一个活页到这本书中,你更新在最后面的索引,你列举菜的每个成分和页码在最后,设想一下你加了一百个美食,你能很快找到含有豆腐这个食材的美食,用索引能非常快的找到你想要的东西相比直接一页一页的翻着查找。

schema就是你告诉solr 在输入的文档中打算用什么做索引的。

 

solr眼中的世界是什么样子的。

document是solr中最基本的单元,一个美食的document可能包含这些美食的材料,需要做哪些准备,需要哪些工具,烹饪的时间等等,一个人的document可能包含这个人的名字,年龄,毕业院校等等。

在solr中,document由field组成,field可能描述信息的一些片段,鞋号可能是一个field,姓名也可能是一个field。

fields可能包含不同种类的数据。一个name field ,一般会被定义成text的,一个年龄,可能是float的,如果很好的定义这些类型,solr能够正确的探测到他们,你的用户会得到更好的query。

 

Field analysis

field analysis 告诉solr应该怎么用过来的数据建索引,一个更加精确的过程可以试processing,或者digestion. 举个例子,一个个人传记中的内容应该都被索引,这样你能快速找到一个对机器学习特别有研究的人,然而有些词是你需要了解的或者说对于你根本没有意义,比如说 你,的,好,而有的词是比较重要的比如机器学习,这种比较有代表性的词,solr解决这类问题的方法是你告诉solr如果这个field做切分,比如去停用词,比如把所有的字母小写。

 

Field Type定义和属性

一个field的type包含以下4类信息:

1. type名字

2. 继承类的名字

3. 如果type是TextField,定义如何分析它

4. field属性

 

 schema api

使用rest接口可以获取现在collection的fields的一些定义,包括dynamicfields,name ,version,uniquekey等等。

 

 DocValue

这个概念是新加进去的,方便用在sort,facet这些功能中,这样不需要便利这个索引,就能完成一些操作,类似于正排的一些信息。