当数据量越来越大时,就必须要考虑分布式方案了,网上关于c#上的lucene分布式方案目前基本上还没有,
我在分布式索引和检索的设想如下:
索引
类似于数据库的分区表,我们也可建立分区节点,
如将ID为1-1000000 放到 节点1 上
将1000001-2000000 放到 节点2 上,以至类推可以很容易进行扩展,
由主程序根据id往各节点进行写入.
如果要均衡的分布到各节点,可采用hash值进行分区,
检索
由主程序将检索条件发往各节点,各节点将检索结果TopN返回,
主程序对m x TopN 进行重新 排序后 返回给调用方
问题
索引方面存在问题是一旦分区范围确定下来,后面要调整会比较麻烦
检索方面的问题是各节点如何包装结果数据返回,