目前最新版已经是 8.x,但 Solr 似乎会平行发布版本。比如6.x的版本仍然会在7.7.1发布后更新
粗略的基础知识
Solr中的Core可以理解成一个单独的Databasemanaged-schema的意义是配置当前的Core的字段,以及分字段的单词分析,例如text_en等。注意必须提前配置好,才能进行数据的导入工作,否则数据即使导入成功也无法按指定的索引流程执行分词solrconfig.xml的意义是配置全局Solr,一般只是添加queryParser,这样可以使用自定义的QParserPlugin
部署
- 部署的策略是全部采用
Docker,将所有配置文件全部单独做一个Docker Image。这样的目的是为了完全分离数据与配置,同时方便打包
可直接在 root权限下运行的 Dockerfile 参考
1 | FROM solr:7.7.1 |
自定义 TokenFilter
TokenFilter 的作用,是用来针对一句话做最终的关键字筛选。
例如一句话是 I eat apple。如果使用默认的 text_en,那么最终结果就是 eat apple,而 I 会被隐藏
如果希望 eat 是作为 ate 来索引关键字,或者 apple这个关键字需要其他特殊处理,就需要自定义 TokenFilter
自定义 QParserPlugin
为了能够满足项目要求的排序,可能原生的 boost 无法满足要求时
一些建议
- 原始的
solrconfig.xml内包含大量预定义配置,请删除用不到的,只保留用得到的,不要保留模棱两可的配置