FuzzySearch ======== **1. 介绍** 与倒排索引支持精确查询不同,模糊搜索用于获得与检索词最接近的文档;其通常用于较长的检索词的搜索,例如:基于商品标题的搜索。 **2. 构建** FuzzyIndex是基于小波树构建, 在构建时需要占用大量的内存。 因此,在构建FuzzyIndex时,系统需要保留足够的内存空间,以避免内存空间耗尽; **3. 更新** 由于小波树不支持增量构建;因此,FuzzyIndex更新时,对于不同类型的SCD构建策略有所不同; **3.1 -U 更新** 对于-U SCD更新,fuzzyIndex需要重新构建,其filter也需要重新构建。 **3.2 -D 更新** 对于-D SCD更新,fuzzyIndex需要重新构建,其filter也需要重新构建。 **3.3 -R 更新** 由于Rtype字段字段是非FuzzyIndex索引字段,例如,价格字段。因此,在进行Rtype更新时,虽然原文档已经发生了变化,但fm-index不需要更新,而是更新fm-index对应的filter; **4. filter** filter用来对FuzzyIndex检索结果的过滤。与此同时,由于fuzzyIndex仅对title字段建立索引,可以将filter作为其他字段的索引,用于基于其他字段的查询,例如,Source字段。