elasticsearch fixed shard - yaokun123/php-wiki GitHub Wiki

es如何指定查询分片

Es查询的时候默认是随机从一些分片中查询数据,可以通过配置让es从某些分片中查询数据

client.prepareSearch('crxy').setPreference("_local")

_local:指查询操作会优先在本地节点有的分片中查询,没有的话再在其它节点查询。
_primary:指查询只在主分片中查询。
_primary_first:指查询会先在主分片中查询,如果主分片找不到(挂了),就会在副本中查询
_only_node:指在指定id的节点里面进行查询,如果该节点只有要查询索引的部分分片,就只在这部分分片中查找,所以查询结果可能不完整
_prefer_node:nodeid优先在指定的节点上执行查询
Custom (string) value:随机指定一个值就可以。
_shards:0,1,2,3,4:查询指定分片的数据
自定义:_only_nodes:nodeid1,nodeid2,nodeid3根据多个节点进行查询