比较复杂的多索引搜索,不知道怎么处理,谁来帮帮忙。
有两个索引A, B
A有字段:id, name, title
B有字段:A.id, cid, did, name, content
说明:两个索引的关联字段是A.id, 两个索引的数据量非常大,达到千万。
要求搜索后分页返回A数据
搜索参数:cid, did, 关键字(可能是A.name, A.title , B.name, B.content),参数是must的关系。
我的几个方案感觉都不好
1 先通过cid, did 搜索B获取A.id集合,再与关键字一起搜索A,获得最终结果
存在问题:通过cid, did 搜索B获取A.id集合,必须获取所有数据,再与关键字组合查询(为什么?因为不知道哪些A.id与关键字组合会命中,所以需要去所有命中的A.id。)
2 先搜索关键字获取命中A.id, 再与cid, did 一起搜索B,获得最终A.id集合,再通过A.id 获取A数据。 比方法1还多了一次搜索,更不好。
谁有好的方案?
有两个索引A, B
A有字段:id, name, title
B有字段:A.id, cid, did, name, content
说明:两个索引的关联字段是A.id, 两个索引的数据量非常大,达到千万。
要求搜索后分页返回A数据
搜索参数:cid, did, 关键字(可能是A.name, A.title , B.name, B.content),参数是must的关系。
我的几个方案感觉都不好
1 先通过cid, did 搜索B获取A.id集合,再与关键字一起搜索A,获得最终结果
存在问题:通过cid, did 搜索B获取A.id集合,必须获取所有数据,再与关键字组合查询(为什么?因为不知道哪些A.id与关键字组合会命中,所以需要去所有命中的A.id。)
2 先搜索关键字获取命中A.id, 再与cid, did 一起搜索B,获得最终A.id集合,再通过A.id 获取A数据。 比方法1还多了一次搜索,更不好。
谁有好的方案?
1 个回复
mcs41531
赞同来自: