1. 为帖子增加标题字段
POST /forum/article/_bulk
{ "update": { "_id": "1"} }
{ "doc" : {"title" : "this is java and elasticsearch blog"} }
{ "update": { "_id": "2"} }
{ "doc" : {"title" : "this is java blog"} }
{ "update": { "_id": "3"} }
{ "doc" : {"title" : "this is elasticsearch blog"} }
{ "update": { "_id": "4"} }
{ "doc" : {"title" : "this is java, elasticsearch, hadoop blog"} }
{ "update": { "_id": "5"} }
{ "doc" : {"title" : "this is spark blog"} }
  1. 搜索标题中包含java或elasticsearch的blog

match query,是负责进行全文检索的。当然,如果要检索的field,是not_analyzed类型的,那么match query也相当于term query。

GET /forum/article/_search
{"query": {"match": {"title": "java elasticsearch"}}
}
  1. 搜索标题中包含java和elasticsearch的blog

搜索结果精准控制的第一步:灵活使用and关键字,如果你是希望所有的搜索关键字都要匹配的,那么就用and,可以实现单纯match query无法实现的效果

GET /forum/article/_search
{"query": {"match": {"title": {"query": "java elasticsearch","operator": "and"}}}
}
  1. 搜索包含java,elasticsearch,spark,hadoop,4个关键字中,至少3个的blog

控制搜索结果的精准度的第二步:指定一些关键字中,必须至少匹配其中的多少个关键字,才能作为结果返回

GET /forum/article/_search
{"query": {"match": {"title": {"query": "java elasticsearch spark hadoop","minimum_should_match": "75%"}}}
}
  1. 用bool组合多个搜索条件,来搜索title
GET /forum/article/_search
{"query": {"bool": {"must":     { "match": { "title": "java" }},"must_not": { "match": { "title": "spark"  }},"should": [{ "match": { "title": "hadoop" }},{ "match": { "title": "elasticsearch"   }}]}}
}
  1. bool组合多个搜索条件,如何计算relevance score

must和should搜索对应的分数,加起来,除以must和should的总数

排名第一:java,同时包含should中所有的关键字,hadoop,elasticsearch
排名第二:java,同时包含should中的elasticsearch
排名第三:java,不包含should中的任何关键字

should是可以影响相关度分数的,must是确保说,谁必须有这个关键字,同时会根据这个must的条件去计算出document对这个搜索条件的relevance score,在满足must的基础之上,should中的条件,不匹配也可以,但是如果匹配的更多,那么document的relevance score就会更高

  1. 搜索java,hadoop,spark,elasticsearch,至少包含其中3个关键字

默认情况下,should是可以不匹配任何一个的,比如上面的搜索中,this is java blog,就不匹配任何一个should条件,但是有个例外的情况,如果没有must的话,那么should中必须至少匹配一个才可以,比如下面的搜索,should中有4个条件,默认情况下,只要满足其中一个条件,就可以匹配作为结果返回,但是可以精准控制,should的4个条件中,至少匹配几个才能作为结果返回

GET /forum/article/_search
{"query": {"bool": {"should": [{ "match": { "title": "java" }},{ "match": { "title": "elasticsearch"   }},{ "match": { "title": "hadoop"   }},{ "match": { "title": "spark"   }}],"minimum_should_match": 3 }}
}

(1) 全文检索的时候,进行多个值的检索,有两种做法,match query;should
(2) 控制搜索结果精准度:and operator,minimum_should_match

Elasticsearch学习之深入搜索一 --- 提高查询的精准度相关推荐

  1. ElasticSearch学习总结(三):查询总结

    ElasticSearch学习总结(三):查询总结 本文主要对Elasticsearch中查询相关的知识做一个简单的总结,内容主要包括查询的评分机制,查询改写,过滤器,以及对常见的查询做一个简单的分类 ...

  2. 如何提高项目估算精准度 关键有3方面

    软件规模可以用多种方式进行估算,但是用功能点估算方式更准确,而自动估算让估算更快速,我们以CoCode需求分析工具为例来说明,如何提高项目估算精准度? 一.调整功能点数 要提高项目估算精准度,首先应该 ...

  3. 如何提高项目估算精准度?关键看5大影响因子

    如何让项目估算工作更加精准,我们需要重点关注5大调整因子. 1.功能点调整因子 首先需要对功能点因子进行调整,区分不同类型的系统特征值. 因为不同的系统,对项目开发的影响程度不同,一般我们把系统特征值 ...

  4. 3.Elasticsearch学习之深度分页、游标查询、以及批量操作

    1.深度分页 1.分页查询 POST /shop/_doc/_search { "query": { "match_all": {} },"from& ...

  5. ElasticSearch学习之(三)--搜索入门从lucene到Soler,ElasticSearch

    一. 什么是搜索 搜索大白话来说就是通过部分信息查找我们需要的更多更详细的信息.例如:通过百度,Google等各种工具对视频, 新闻,商品等各种我们需要获取的信息的检索.按照搜索的使用场景大概可以分为 ...

  6. 弘辽科技:如何矫正人群标签,提高访客精准度?

    现在电商人的焦虑就是新链接不补没流量,补了人群不精准,变成一个无底洞,还有好多人在一条路上走到黑,越差越补,越补越差.导致自己的店铺出现了典型的"补单上瘾症状",一停止补单,流量就 ...

  7. 黑马程序员--分布式搜索ElasticSearch学习笔记

    写在最前 黑马视频地址:https://www.bilibili.com/video/BV1LQ4y127n4/ 想获得最佳的阅读体验,请移步至我的个人博客 SpringCloud学习笔记 消息队列M ...

  8. Elasticsearch学习第二篇--常用的几种搜索方式

    Elasticsearch学习第二篇--常用的几种搜索方式 一.Query String Search 查询全部 条件查询 二.Query DSL 查询全部 条件查询 三.Query Filter 四 ...

  9. Elasticsearch学习(四) - 查询①

    title: Elasticsearch学习(四)-查询① date: 2020-10-29 tags: Elasticsearch Elasticsearch学习(四)-查询① categories ...

最新文章

  1. 网络编程学习笔记(recvfrom很奇怪的一个地方)
  2. python脚本自动发邮件功能
  3. 关于http中Transfer-Encoding
  4. ML之Hash_EditDistance:基于输入图片哈希化(均值哈希+差值哈希)即8*8个元素的单向vector利用编辑距离算法进行判别
  5. 在discuzNT中加入Adsense广告(只在第一楼显示)
  6. endnote x9中科大版_文献管理软件Endnote的一些使用经验
  7. 用ExtJs+Linq+Wcf打造简单grid
  8. Linux中的同步机制
  9. python之路--day10-闭包函数
  10. 转载:获取数据库中的所有表 (C#实现)
  11. 计算机无法读取移动光驱,外置光驱无法读取光盘怎么解决
  12. TVS防护电路的典型应用
  13. 如何清空c盘只剩系统_win7系统怎么把C盘里垃圾清除干净,只保留系统文件。
  14. 思考伯努利试验的两种组合思想
  15. 2020编译原理练习记录(2)
  16. PhoneGap VS. Titanium
  17. hexo博客微博图床失效解决办法
  18. Windows错误码
  19. NER综述 | 命名实体识别的过去和现在
  20. 用“小花生”-阅读记录app坚持打卡快3年,我带儿子在学前实现中英文阅读量4500本 ...

热门文章

  1. 享学课堂python怎么样
  2. OneBottomNavigationBar 可以凸起的导航菜单
  3. Laravel 测试如何认证用户 解决 Call to a member function connection() on null
  4. 离散数学CAI软件-1.GUI界面背景设置
  5. querySelectorAll 和 getElementsByTagName区别
  6. 旅馆旅客管理(静态成员)
  7. 欣瑞达RK3288系列安卓工控一体机正式发布
  8. Unity多人联机的实现
  9. mysql如何配置phpmyadmin_如何进行phpmyadmin配置 phpmyadmin快速配置方法【详细介绍】...
  10. 鼠标不能拖动文件了。