你不会是程序猿吧?

添加单条数据时检查重复,重复就更新,不重复就添加

Elasticsearch | 作者 12345xw | 发布于2020年03月18日 | 阅读数:2807

比如 有两个字段url和text的数据,在添加一条数据时看url字段有没有与已有数据重复的,重复就更新这条数据更新,不重复就添加。最好不能指定url为_id。
这是创建的索引:
PUT /index1
{
"mappings": {
"properties": {
"url": { "type": "keyword" },
"text": { "type": "text" }
}
}
}
假如添加一条数据:
POST /index1/_doc
{
"url":"www.baidu.com",
"text":"网页"
}
再添加数据:
POST /index1/_doc
{
"url":"www.baidu.com",
"text":"网页xxxxx"
}
因为url与已有的数据有相等的所以应该更新
 
再添加数据:
POST /index1/_doc
{
"url":"www.hao123.com",
"text":"网页xxxxx"
}
没有url与库中没有重复所以就添加
 
已邀请:

tacsklet - 公司有用到es

赞同来自: 12345xw

1.这明显是需要一个url作为主键的啊,不能指定url作为id的原因是什么,用hash值也不行吗。
2.如果不行的话,在写入的时候进行一下查询,如果存在就更新,不存在就添加。

要回复问题请先登录注册