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

企业网站建设费用搜索广告

企业网站建设费用,搜索广告,杭州知名的企业网站建设,清远今日头条最新消息Elasticsearch 查询时 term、match、match_phrase、match_phrase_prefix 的区别 keyword 与 text 区别term 查询match 查询match_phrase 查询match_phrase_prefix 查询写在最后 在讲述 es 查询时 term、match、match_phrase、match_phrase_prefix 的区别之前,先来了…

Elasticsearch 查询时 term、match、match_phrase、match_phrase_prefix 的区别

  • keyword 与 text 区别
  • term 查询
  • match 查询
  • match_phrase 查询
  • match_phrase_prefix 查询
  • 写在最后

在讲述 es 查询时 term、match、match_phrase、match_phrase_prefix 的区别之前,先来了解一下 es 文本字段类型 keyword、 text 的区别。

keyword 与 text 区别

在 es 创建索引中,经常会遇到 keyword 、text 字段类型的选择,其实他们之间的区别也比较容易理解。
keyword:在索引时,keyword类型的数据不会被分词器处理,而是直接作为整体存储到索引中。
text:在索引时,text类型的数据会经过分词器处理,将文本切分成多个词条,然后存储到索引中。
可以通过以下命令来查看分词结果,es 不指定分词器则走的是 es 默认的分词器(通常情况下都是单字)
查看 text 字段类型分词结果

POST /_analyze
{"text": "很高兴为您服务"
}

在这里插入图片描述
查看 keyword 字段类型分词结果

POST /_analyze
{"analyzer": "keyword", "text": "很高兴为您服务"
}

在这里插入图片描述

term 查询

term 查询用于精确值匹配,它不会对查询的文本进行分词处理,直接在索引中查找精确值。
适用场景:适用于关键字(keyword)类型的字段,或者已经过精确值(如数字、日期等)处理的文本字段。这里我用 term 查询来精确查询 convId属性字段

GET crm_meiqia_conversation_tmp/_search
{  "query": {  "bool": {  "must": [  {"term" : {"convId" : 6305271104}} ]}  }  
}

查询结果如图
在这里插入图片描述

match 查询

match 查询是一种全文搜索查询,它会对查询文本进行分词处理,然后搜索分词后的结果。它适用于 text 类型的字段。
适用场景:用于执行全文搜索,适合于搜索文本内容。这里我搜索一下索引中的 text 类型字段 ,由于表数据比较多,因此上一次查询的 convId 字段我还保留。

GET crm_meiqia_conversation_tmp/_search
{  "query": {  "bool": {  "must": [  {"term" : {"convId" : 6305271104}} ,{  "match": {  "convContent.content": "哦 一下 保存 "  }  }]}  }  
}

查询结果如图
在这里插入图片描述

match_phrase 查询

match_phrase 查询是一种精确短语匹配查询,它会在文本中查找包含指定短语的文档,同时考虑短语的顺序和位置。
适用场景:适用于需要精确匹配短语的场景,如引用搜索、精确短语匹配等。比如这里我们还查询上面的一段话,查看一下查询结果,顺序不对的话应是查询不到结果的

GET crm_meiqia_conversation_tmp/_search
{  "query": {  "bool": {  "must": [  {"term" : {"convId" : 6305271104}} ,{  "match_phrase": {  "convContent.content": "哦 一下 保存 "  }  }]}  }  
}

查询结果如图
在这里插入图片描述
这时候我调整一下查询内容的顺序后再次尝试,就可以查询到数据

GET crm_meiqia_conversation_tmp/_search
{  "query": {  "bool": {  "must": [  {"term" : {"convId" : 6305271104}} ,{  "match_phrase": {  "convContent.content": "保存 一下 "  }  }]}  }  
}

查询结果如图
在这里插入图片描述

match_phrase_prefix 查询

match_phrase_prefix 查询是 match_phrase 查询的一个变种,它允许对查询短语的最后一个单词进行前缀匹配。
适用场景:适用于需要匹配以特定前缀开头的短语且对查询精度要求较高的场景。这里查询要求前缀匹配,类似于 mysql 的 like 查询 的 “保存%”

GET crm_meiqia_conversation_tmp/_search
{  "query": {  "bool": {  "must": [  {"term" : {"convId" : 6305271104}} ,{  "match_phrase_prefix": {  "convContent.content": "保存 一下 "  }  }]}  }  
}

查询结果如图
在这里插入图片描述
更换一下顺序,就无法通过前缀匹配到内容了,比如

GET crm_meiqia_conversation_tmp/_search
{  "query": {  "bool": {  "must": [  {"term" : {"convId" : 6305271104}} ,{  "match_phrase_prefix": {  "convContent.content": "一下 保存"  }  }]}  }  
}

查询结果如图
在这里插入图片描述

写在最后

以上就是 Elasticsearch 查询时 term、match、match_phrase、match_phrase_prefix 的区别,大家根据具体适用的场景选择合适的查询语句哈。

http://www.15wanjia.com/news/3293.html

相关文章:

  • 中国建设银行贵州省分行网站东莞seo建站哪家好
  • wordpress套模板培训北京seo
  • 微店网页版登录入口人员优化是什么意思
  • 电子商务网站的建设及规划网络推广主要内容
  • 聊城做网站的公司价格关键词网站排名查询
  • 做嗳嗳的网站网站开发外包
  • 公众号可以做分类信息网站吗软文代写多少钱一篇
  • 陕西 网站建设 陕ICP最新seo自动优化软件
  • 做斗图的网站品牌营销推广要怎么做
  • 申请一个域名多少钱沧州seo推广
  • 怎么找做网站的客户宣传推广方式
  • 谷歌海外广告投放推广深圳网站搜索优化
  • 烟台做网站哪里好2022最新免费的推广引流软件
  • php sqlite 做网站关键字挖掘爱站网
  • dw网站根目录怎么做亚马逊开店流程及费用
  • 低价网站建设上海推广网站
  • 旅游网站平台建设方案策划书优化大师绿色版
  • 杭州维利国德网站建设案例百度网站流量查询
  • 北京建设工程交易网站官网推广产品的软文怎么写
  • 前端用什么框架做网站老王搜索引擎入口
  • 佛山网站建设网站制作公司如何建立一个自己的网站啊
  • 怎样做销售水蜜桃网站搜索引擎营销的内容有哪些
  • 做漫画视频在线观看网站seo优化专家
  • 重庆璧山网站建设腾讯推广平台
  • 手机版网站开发实例站长之家查询网站
  • 做网站首页文件深圳优化公司统高粱seo
  • 做电影类网站收入怎么样办理培训机构需要具备的条件
  • 在线播放的网站怎么做百度认证中心
  • 义乌 外贸网站 开发友情链接的概念
  • 惠州做棋牌网站建设东莞seo建站