很久之前就想着整一个全文搜索的功能在项目中。最近想了一些搜索相关的内容。
1.在内容增加后,放入一个缓存区域,等到一定的条件,缓存时间或缓存大小达到阀值,追加数据索引到索引库。
2.在适当的时间(在压力小的时候),对索引文件分批次进行重够优化及排错。在一些特殊情况下,可能需要整体重新生成索引,要尽可能避免这种情况,可以局部重建,不断追加索引(一般情况下,索引的数据冗余要比整体重构带来的负面影响小很多)。
3.在构建索引时,注意分词器的设计,注意索引字段的设计,注意各字段搜索权重的设计,注意跳转路径的设计,注意摘要内容的保持方式(避免在索引中保存大的数据)。
4.索引构建好了就该查询了,查询时要注意查询条件的分词(一般与构建索引的分词器一致),注意查询条件的拼接逻辑(一般是与和或,也有非),注意查询结果的拼接及分页返回。
阅读(992) | 评论(0) | 转发(0) |