• icer
    2019-10-08
    如果文档存在P2中,但是随机选择的时候选择了P0 R1 P1上会查不到数据,会继续随机查询吗

    作者回复: 目前基于id查找 是会通过hash函数定位到具体的shard分片上的。所以不会存在找不到。并不是随机的

    
     2
  • godtrue
    2019-09-21
    这节好,总于大体明白了搜索的过程,搜索分为两步,query+fetch,查询一些信息,毕竟不知道在哪里,可能存储在任意分片上,所以,少不得去每个分片都搜索一次,然后再汇总,然后再去获取详细的信息。分布式数据库,本质上感觉就是对数据的水平分库分表,关系型数据库需要自己玩,分布式的数据库自己实现了,所以,才敢号称天然支持水平扩展。kv数据库通过k路由到对应的节点,es通过指定路由ID或者使用文档ID的方式来路由到不同的节点,在kv数据库中key需要集群唯一,哪在es中文档ID需要集群唯一嘛?感觉索引下唯一就行,如果需要支持跨索引查询,则需要集群唯一?
    老师能给分析分析嘛?
    
    
  • Geek_5b8961
    2019-08-12
    老师好,es是否支持按某个字段来分区? 比如三个商品 name:苹果,cat:水果;name:苹果,cat:电子产品;name:苹果,cat:衣服。当这些商品在不同的shards上时,同个cat下苹果的tfidf可能会不一样。如果能控制每个shards下的cat尽量一致,那么我就能保证按cat过滤时苹果的tfidf是一样的

    作者回复: 1你可以指定自己的routing,将数据路由到具体的shard上,这样可以解决算分在不同分片的问题,因为算分tf没问题,idf是基于分片的。

     1
    
我们在线,来聊聊吧