当前位置: 首页 > news >正文

通辽网站建设公司拉新注册app拿佣金

通辽网站建设公司,拉新注册app拿佣金,日本网站图片做淘宝代购,设计公司给公司做网站用了方正字体Nested 类型是 object 数据类型的特殊版本,它允许对象数组以一种可以彼此独立查询的方式进行索引。在内部,嵌套对象将数组中的每个对象索引为单独的隐藏文档,这意味着每个嵌套对象都可以使用 nested query 独立于其他对象进行查询。每个 nest…

Nested 类型是 object 数据类型的特殊版本,它允许对象数组以一种可以彼此独立查询的方式进行索引。在内部,嵌套对象将数组中的每个对象索引为单独的隐藏文档,这意味着每个嵌套对象都可以使用 nested query 独立于其他对象进行查询。每个 nested 对象都被索引为一个单独的 Lucene 文档。有关更多关于 nested 数据类型的文档,我们可以参考之前的文章 “Elasticsearch: object 及 nested 数据类型”。

在使用 Elasticsearch 时,为了系统的效率,我们并不建议经常修改文档,但是在有些时候,我们还必须对已经索引过的文档进行修改。针对 nested 类型的字段,我该如何进行更新及删除呢?

让我们先使用一个例子来进行展示。

我们首先来创建一个 developer 的索引:

PUT developer
{"mappings": {"properties": {"name": {"type": "text"},"skills": {"type": "nested","properties": {"language": {"type": "keyword"},"level": {"type": "keyword"}}}}}
}

在上面,我们定义 skills 为一个 nested 数据类型。我们使用如下的命令来创建两个文档:

POST developer/_doc/101
{"name": "zhang san","skills": [{"language": "ruby","level": "expert"},{"language": "javascript","level": "beginner"}]
}POST developer/_doc/102
{"name": "li si","skills": [{"language": "ruby","level": "beginner"}]
}

上面的命令写入了两个文档。

添加技能

针对第二个文档,我们想增加如下的一个技能:

{"language": "Python","level" "expert"
}

首先让我们使用 painless 语言创建我们的脚本。 你可以在参考资料中阅读有关它的更多详细信息,但熟悉 Java 的人会发现编码很简单。关于 painless 语音的编程,你可以在文章 “Elastic:开发者上手指南” 中的 “Painless 编程” 章节中找到很多文章进行参考。

我们的脚本将验证 skills 字段是否为空,如果是,我们创建列表实例并稍后添加新项目。如果不是,则添加新 skills。 

      if (ctx._source.skills != null) {ctx._source.skills.addAll(params.skills);} else {ctx._source.skills = new ArrayList();ctx._source.skills.addAll(params.skills);}

最终添加 skills 的代码是这样的:

POST developer/_update/102
{"script": {"source": """if (ctx._source.skills != null) {ctx._source.skills.addAll(params.skills);} else {ctx._source.skills = new ArrayList();ctx._source.skills.addAll(params.skills);}""","params": {"skills": [{"language": "Python","level": "expert"}]}}
}

我们通过如下的命令来进行验证:

GET developer/_doc/102

我们得到如下的结果:

{"_index": "developer","_id": "102","_version": 3,"_seq_no": 4,"_primary_term": 1,"found": true,"_source": {"name": "li si","skills": [{"language": "ruby","level": "beginner"},{"level": "expert","language": "Python"}]}
}

从上面,我们可以看出来新的 skills 已经被添加进去了。

删除 skills

同样,我们可以使用如下的代码来删除一个技能:

POST developer/_update/102
{"script": {"source": """if (ctx._source.skills != null) {for (int i; i < params.skills.length; i++) {ctx._source.skills.removeIf(a->a.language.equals(params.skills[i].language) &&a.level.equals(params.skills[i].level));}}""","params": {"skills": [{"language": "Python","level": "expert"}]}}
}

我们再次使用如下的命令来查看 id 为 102 的文档:

GET developer/_doc/102

上面的命令返回的值为:

{"_index": "developer","_id": "102","_version": 4,"_seq_no": 5,"_primary_term": 1,"found": true,"_source": {"name": "li si","skills": [{"language": "ruby","level": "beginner"}]}
}

我们可以看出来,在上一步添加的 skill,现在已经被成功地移除了。

http://www.jinmujx.cn/news/109206.html

相关文章:

  • 域名一年要多少钱搜索引擎优化的缺点包括
  • 网站跳转qq如何在百度发布信息
  • 推广网站的几种方法佛山seo优化
  • 绍兴企业免费建站深圳网络提速优化服务包
  • 做网站绿标考研培训机构排名前十
  • 有什么正网站做兼职的广州网站排名专业乐云seo
  • 廊坊论坛网站建设百度搜索引擎服务项目
  • 网站建设时间计划seo优化人员
  • 做彩票网站代理犯法吗6怎么做推广和宣传
  • 企业 网站备案百度广告推广价格
  • 做网站的那些个人工作室微信推广软件有哪些
  • 哪些企业需要网站建设网站免费推广网站
  • 做问卷赚钱网站比较好的网站建设网站
  • 本地的南通网站建设优化 保证排名
  • 株洲做网站的公司今日新闻头条新闻最新
  • 房屋中介网站怎么做竞价推广出价多少合适
  • C2C电子商务网站管理系统成人英语培训
  • android app开发教程网站seo优化分析
  • 沈阳沈河区网站建设最新提升关键词排名软件
  • 永久免费网站申请注册怎么联系百度推广
  • 房地产网站制作教程千峰培训可靠吗?
  • 国产 做 视频网站小程序搭建教程
  • 做网站先做ue乐陵seo外包公司
  • 门户网站功能百度快照入口
  • 网站开发干嘛百度信息流广告投放
  • 食品经营许可网站增项怎么做长沙快速排名优化
  • 营口做网站多少钱广告推广文案
  • 成都b2b网站建设重庆seo关键词优化服务
  • 黑马程序员和比特就业课佛山做seo推广公司
  • 做国际网站花钱吗品牌广告语经典100条