快速入门ElasticSearch(下)( 三 )
现在尝试将外层的filter去掉 , 并将自定义的boost也去掉 , 此时JSON格式的信息变为:
{"query": {"constant_score": {"match": {"title": "入门"}}}}此时查询结果如下所示 , 可以看到固定分数查询是不支持match匹配的 , 仅支持filter匹配 。
文章插图
布尔查询在前面我们已经使用过布尔查询 , 布尔查询使用的关键字是bool , 同样使用POST方法 , 但是对应的接口API为 , 注意里面是不写索引的 , 此时相对应的JSON格式信息为:
{"query": {"bool": {"should": [{"match": {"author": "张三"}},{"match": {"title": "Java"}}]}}}可以看到这里我们使用了bool关键字 , 且在里面又使用了should这一条件 , 表示应当 , 上面例子的意思是查询作者为张三或者标题中包含Java的文档记录 , 查询结果肯定有三条:
文章插图
接下来将上面的should条件修改为must , 其余保持不变则就将或的关系变成与的关系 , 此时查询结果肯定为空 , 因为不存在作者为张三且标题中包含Java的文档记录:
文章插图
文章插图
再来看一个例子 , 查询单词数为8000且标题中包含Java的文档记录 , 此时的JSON信息为:
{"query": {"bool": {"must": [{"match": {"title": "Java"}}],"filter": [{"term": {"word_count": 8000}}]}}}通过分析可以知道查询结果只有一条 , 如下所示:
文章插图
与和或都介绍完了 , 现在来学习非 , 非就是must_not , 也就是一定不能满足的条件 。 举个例子 , 查询不是余思的书 , 此时对应的JOSN格式信息为:
{"query": {"bool": {"must_not": {"term": {"author": "余思"}}}}}显然一共有12条记录 , 其中只有一条记录的作者是余思 , 因此作者不是余思的记录肯定的有11条 。
那这样关于ElasticSearch的快速入门就先学习到这 , 后续将正式进入Elastic Stack的学习 。
文章插图
- 固态硬盘入门手册,一看就精通的电脑硬件教程
- SpringBoot2.x入门到项目实战课程系列(第二章)
- 「OpenCV入门教程」线性滤波方框滤波、均值滤波与高斯滤波
- Python爬虫入门第一课:如何解析网页
- 更新了!深入浅出图解Git,入门到精通(保姆级教程)第三篇
- 真效率神器!MaxLauncher(快速启动工具)|PC软件
- 入门到老手全覆盖,锐龙CPU给3D创作加速
- 昔日i7沦为i3,英特尔十代i3或成入门游戏CPU最优选
- 零基础小白入门必看篇:学习Python之面对对象基础
- 如何在短时间内快速成为软件开发专家
