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

网站建设 试卷品牌营销策划

网站建设 试卷,品牌营销策划,b2c网站设计,wordpress 设置图片大小在我之前的文章 “Elasticsearch: object 及 nested 数据类型” 对 nested 数据类型做了一个比较详细的介绍。在实际使用中,你在构建查询时肯定会遇到一些问题。根据官方文档介绍,nested 类型字段在隐藏数组中索引其每个项目,这允许独立于索引…

在我之前的文章 “Elasticsearch: object 及 nested 数据类型” 对 nested 数据类型做了一个比较详细的介绍。在实际使用中,你在构建查询时肯定会遇到一些问题。根据官方文档介绍,nested 类型字段在隐藏数组中索引其每个项目,这允许独立于索引文档搜索这些项目。今天我带来一个问题:问如何获得一个文档,其整个 item 列表必须与一个子句匹配。 让我举个例子让你更清楚。

我有一个 item 字段设置为 nested 的索引。 我索引了两个文档,其中一个所有项目的 status 都为 active,另一个则不全是。

PUT nested_index
{"mappings": {"properties": {"description": {"type": "text"},"item": {"type": "nested","properties": {"value": {"type": "text"},"status": {"type": "keyword"}}}}}
}
POST nested_index/_doc
{"description": "nested A","item": [{"value": "a","status": "active"},{"value": "ab","status": "active"}]
}POST nested_index/_doc
{"description": "nested B","item": [{"value": "b","status": "inactive"},{"value": "bc","status": "active"}]
}

如上所示,第一个文档里的 status 都是 active 的状态,而第二个文档的其中一个 status 状态是 active,另外一个是 inactive 状态。

现在我们想要查询的问题是:搜索到 status 都是 active 的文档。

也许你会想到使用如下的查询:

GET nested_index/_search
{"query": {"nested": {"path": "item","query": {"term": {"item.status": {"value": "active"}}}}}
}

上面命令查询的结果是:

{"took": 1,"timed_out": false,"_shards": {"total": 1,"successful": 1,"skipped": 0,"failed": 0},"hits": {"total": {"value": 2,"relation": "eq"},"max_score": 0.35667494,"hits": [{"_index": "nested_index","_id": "xRoaRIYB2XodIZsbUfzi","_score": 0.35667494,"_source": {"description": "nested A","item": [{"value": "a","status": "active"},{"value": "ab","status": "active"}]}},{"_index": "nested_index","_id": "xhoaRIYB2XodIZsbWvzm","_score": 0.35667494,"_source": {"description": "nested B","item": [{"value": "b","status": "inactive"},{"value": "bc","status": "active"}]}}]}
}

显然两个文档都被查询到了。这个不是我们想要的结果。

解决它的方法是使用两个 must_not 子句。 最里面的 must_not 子句将过滤文档 A,因为所有项目都具有 active 状态。 最外层的 must_not 将反转操作,迄今为止省略的文档 A 将可用,而文档 B 将不可用且不会出现在响应中。

GET nested_index/_search
{"query": {"bool": {"must_not": [{"nested": {"path": "item","query": {"bool": {"must_not": [{"term": {"item.status": {"value": "active"}}}]}}}}]}}
}

上面的命令结果为:

{"took": 2,"timed_out": false,"_shards": {"total": 1,"successful": 1,"skipped": 0,"failed": 0},"hits": {"total": {"value": 1,"relation": "eq"},"max_score": 0,"hits": [{"_index": "nested_index","_id": "xRoaRIYB2XodIZsbUfzi","_score": 0,"_source": {"description": "nested A","item": [{"value": "a","status": "active"},{"value": "ab","status": "active"}]}}]}
}

这次显然只有 nested A 文档被搜索到。

http://www.wangmingla.cn/news/22435.html

相关文章:

  • 西安网站建设 企业建站保定网站建设公司哪家好
  • 做网站高手如何优化关键词的方法
  • 厦门市网站建设公司知乎关键词优化软件
  • 偃师做网站网站查询网
  • 网站做跳转做百度seo
  • 陕西江川建设有限公司公司网站互联网媒体推广
  • 企业网站建设webbj企业邮箱
  • 科技公司网站建设seo人员的职责
  • 承德百度网站建设谷歌怎么推广自己的网站
  • 长春在线制作网站中国联通和腾讯
  • wap网站源码 下载域名被墙检测
  • 做正版电子书下载网站如何做品牌宣传与推广
  • 冷水江网站定制国际军事新闻最新消息今天
  • 残联网站建设互联网seo是什么
  • 做网站前台模型要做什么呢sem
  • 平面设计大赛网站广西seo关键词怎么优化
  • 简述如何让网站排名快速提升aso优化服务
  • 网站建设费用核算科目站长工具无内鬼放心开车禁止收费
  • 武汉教育云平台网站建设哪里可以免费推广广告
  • 做网站什么主题比较好爱营销电信版下载app最新版
  • 小程序模板商城中小企业网站优化
  • 映射做网站推广公众号
  • 做网站c 和java那个好搜索引擎下载入口
  • 网站标题权重如何推广自己的业务
  • 中国交通建设集团网站杭州seo网站排名
  • 做网站建设业务员怎么样关键词有哪些关联词
  • adobe cms 网站制作摘抄一小段新闻
  • wordpress添加主题后怎么添加内容洛阳seo外包公司费用
  • 长春品牌网站建设公司今天的头条新闻
  • wordpress文件服务器seo的优化原理