一个朋友在群里问为什么在analyzer里看到的和从索引里面查出来的不一样 ,在过滤器里面配置了

<charFilter class=”solr.HTMLStripCharFilterFactory”/>

并且在analyzer里面调试确实去除了html,但是在查询索引的时候html又出来了。

 

刚接触的同学可能对于solr/lucene的数据存储不是特别清楚,简单的说, solr数据分两部分:

存储和索引

索引过程

数据提交到solr后,按照配置进行索引和存储两部分处理,存储带html,索引不带html(因为filter可以过滤索引数据,不能过滤存储数据)

index

查询过程

查询请求提交到solr后先经过analyzer处理,然后到索引里面查询数据,如果找到记录从存储返回原文

query