索引
isearch5 支持的索引分为:index,attribute和summary。
Index指的是倒排索引,它存储了存储了从term到DocID的映射关系,形如:
term-->(Doc1,Doc2,...,DocN);倒排索引主要用在检索中,它能快速的定位用户查询到关键字对应的document。比如同事间经常说的”xx“进召回往往指的就是这个”xx“信息被建立了倒排索引。
Attribute指的是正排索引,它存储从DocID到field的映射关系,形如:
DocID-->(term1,term2,...termn)。正排索引分单值和多值两种,单值attribute由于长度是固定的(不包括string类型),因此查找效率高,而且可以支持更新。多值attribute表示某个field中有多个数据(数量不固定),由于长度不确定,因此查找效率相较与单值更慢。正排索引主要是在查询到了某个Document后,根据docid值能快速获取到其attribute用来统计、排序、过滤中。比如我们经常听到的”xx“计算相关性,那么”xx“这个信息就往往建立了正排索引,需要注意的是ranker中使用的字段必须全部进正排,否则ranker取不到这些字段。
summary的存储形式与attribute类似,但是summary是将一个Document对应的多个field存储在一起,并且建立映射,所以能很快从docid定位到对应的summary内容。summary主要是用于结果的展示。
并不是所有的字段都需要建立索引,特别对于商品搜索,一些字段仅仅用于展示,而不用检索或者计算相关性,那么这些字段就存在Doc中,一起返回给前端供应用展示,比如商品的detail链接。