seq搜索引擎优化至少包括那几步?(如何使用document中的id手动指定请求请求参数执行? )
优采云 发布时间: 2021-11-04 16:16seq搜索引擎优化至少包括那几步?(如何使用document中的id手动指定请求请求参数执行?
)
根据应用情况,是否满足手动指定document id的规范,一般在从其他系统导入一些数据到es时,会采用这种方式,也就是利用现有系统数据的唯一标识,作为es中文档的id,比如我们目前正在开发一个电商网站,做一个搜索功能,或者oa系统的一个员工查询。这时候数据会先在网站系统的数据库里,先有副本,然后肯定会有数据库的主键(自增长、uuid、业务id) ),此时使用数据库主键中已有的数据比较合适
如果数据主要存放在es,那么可以使用文档中自动生成的id
1.手动指定
示例
PUT /index/type/id
{
"xxx":"xxx"
}
请求参数
PUT /ecommerce/product/4
{
"name":"yayale yagao",
"desc":"gaoxiao meibai",
"price":100,
"producer":"yayale producer",
"tags":[
"fangzhu","meibai","qingxin"
]
}
执行结果:
{
"_index": "ecommerce",
"_type": "product",
"_id": "4",
"_version": 1,
"result": "created",
"_shards": {
"total": 2,
"successful": 1,
"failed": 0
},
"_seq_no": 0,
"_primary_term": 1
}
2.自动生成的id
示例(语法:不要写id):
POST /index/type
{
"xxx":"xxx"
}
请求参数:
POST /test_index/salesOrder/
{
"OrderProductIds":"5"
}
执行结果:
{
"_index": "test_index",
"_type": "salesOrder",
"_id": "oy53M2kBk5b8VGC4Tnxn",
"_version": 1,
"result": "created",
"_shards": {
"total": 2,
"successful": 1,
"failed": 0
},
"_seq_no": 0,
"_primary_term": 1
}