首先要明白solr其实本质上是一个软件应用,它的原理其实是基于lucence的,lucence中文的意思是全文检索工具,他是将你的每一个文档进行划分,然后创建索引,当你搜到某一关键字时,就会搜出来它的文档。
原始文档(来自于爬虫爬的网页,数据库,或者硬盘上存储的文件)
1.lucence会先将你的原始文档封装成一个个document对象,这些document对象又有很多filed,filed就类似于数据库中的字段名,例如你想将商品名称分词,你就会设置solr配置文件中的filed域以及它的属性,这些filed中存放着文档的名字,路径等等,
2.lucence会将文档中的句子进行分段处理,英文不需要插件,而中文一般是需要一个叫IKAnalyzer的中文分词器,当然也可以用es。他会将你处理出来的关键字封装成为一个trem对象,这个trem对象中存放着文档映射以及关键字。
3.将trem对象放到索引库中,相同的关键字,不同的文档,创建出来的trem对象是不同的。然后他会将这些trem以链表的方式存放,设置id。