PHP的ES入门(五)—— index(索引)的mapping和setting配置

1,170 阅读1分钟

大神请看

本文不一定写的全部都对,如果有哪里写得不好或者不对,可以提但请不要喷,不喜勿看绕道走就是了,虽然有可能在一些小知识点上会误导小白,但是还是可以看看基础的ES操作,对于使用还是一点帮助的

上一节中提到了把索引的某个字段设置成keyword类型,以此来精确查询数据,修改这个需要修改Index的Mapping属性

index的mapping和setting可以在创建index时进行配置

PUT /index名称

{
    "settings":{
        "number_of_shards":8,
        "number_of_replicas":0
    },
    "mappings":{
        "properties":{
            "name":{
                "type":"keyword" // 设置字段为keyword
            }
        }
    }
}

如果索引已经建好并且导入了数据,然后再修改字段的类型是行不通的,这时候需要删除索引重新建立索引并设置相关的mapping或者setting,然后再重新导入数据

下面是PHP的代码实现:

// 结合之前的索引创建,只需要在创建索引时传入参数即可
$index->create([
    'mappings' => [
        'properties' => [
            'name' => [
                'type' => 'keyword',
            ],
        ]
    ],
    'settings' => [
		'number_of_shards' => 8,
		'number_of_replicas' => 0
	]
]);