1. A>B 转化A>B 的结果保存为新的域,查询时候使用新的域作为条件查
2. sum(A,B)>N 转化为 sum(A,B)的值保存为新的域,查询时候 [N TO *] 区间查询代替
3. 非空查询 转化为 对应数值型,使用区间[0 TO *] ,对应文本类型 转化为 构建时候写入默认值
4. 按期望的得分模型排序 转化为,离线根据自定义的模型,计算好一个document-at-time得分,排序时候直接按这个单维度得分排序。问题可能会出现好的越好、坏的越坏
5. 文本得分和属性得分联合 转化为第一维度文本、第二维度属性值 或者 文本*因子+ _val_ 得分
6. 输入提示 转化为基于当前索引的词典的termquerycomponent 或者 独立一个倒排索引,保存词典,此时各种提示转化为倒排的前缀、模糊搜索,同时控制相关联词条的排序规则,包括屏蔽和加强关键词
7. 带特征的单维度实时统计 转化为带特征去查询索引然后facet,将facet结果存入数据库共访问。
8. topN查询词条 直接对query log 执行再次倒排索引,输出高频词以及高频关联词
9. 实时可累加的统计 直接实时构建索引,输出索引的term、倒排的统计信息。
10.突出特定信息 转化为特定关键词的boost或者特定域的boost或者特定文档的boost
11.人名搜索 转化为单子分词并短语查询和属性排序
12.list查询 转化为直接基于lucene的MultiTermQuery,能缓存的尽量缓存起来
13.规则推荐 转化为多属性组合查询唯一规则id返回
14.一次写膨胀性增加 转化为分时间段构建索引、按需加载、卸载索引段
15.多表关联 转化为离线join一起构成文档,查询直接key返回文档,无需多表join
16.sqllike查询 转化为基于词法、句法分析转化为对应语句模板,模板自动生成solr语法
17.关系距离排序 转化为tfitf公式不变而数值用关系维度值代替或者直接function计算关系夹角
18.概率模型、语言模型 转化为引入第三方包实现的得分模型,同时需要调整某些参数根据具体场景
19.空间搜素 转化为关键词到经纬度索引查询,引入第三方包实现的相关插件
20.图片过滤 转化为在图片算法过滤的同时,联合文本查询过滤,实现高质量聚合
21.传递推荐 转化为关键词结果的统计输出,输出条件查询进一步统计输出。。。
22.数据结构化 转化为检索词返回规则,构建可重复计算的特征性结构化数据。
。。。。
所有的需求转化本质,大概可以如下理解:
(1)发挥solr或者lucene的一对一关联,term与document 的关联
(2)通过单一属性,返回关联属性;
(3)索引构建完毕静态信息可以根据条件实时、重复获取
(4)复杂问题离线化,线上实时只读
(5) 大的东西从开源、第三方包获取,细的参数、微调从业务场景出发