【ES】--Elasticsearch DSL的简单查询

一、前言

ES中常见的查询类型分为简单查询、复合查询、聚合查询等。这里基于这些查询进行详细的介绍。
Elasticsearch DSL的简单查询操作如下:

**term查询**:单词查询,在字段的倒排索引(发生分词)或者直接在字段值(未发生分词)中查找条件值,只要找到这个条件值就算匹配上,得分为1**terms查询**:多个单词查询,效果为 多个 term 或者的逻辑。
**match查询**:分词后搜索。比如分词后有N个分词,只要匹配上其中一个就可以返回数据。
   根据文档中实际存储的字段类型(是否为分词文本 text,keyword 不会进行分词),决定是否对条件值进行分词;
   若未分词,直接以条件值执行 term 查询;
   若分词,则对条件值进行,分词处理:
(a)若得到一个词,也是执行term查询
(b)若得到多个词,默认执行 terms 查询(多个单词 或者关系)
(c)也可以手动指定为“且”关系(为且,倒排索引后的词表中要包含 条件分词后的 所有单词),通过以下方式指定 match 单词之间的关系。默认operator是or。
**match_phrase**:不做分词,以当前条件值到文档字段中进行“连续且位置顺序一致的”文本匹配。
**match_pharse_prefix**:同样是以 条件不做分词到文档字段中查询,但是条件最后的 单词不是必须匹配字段内的完整单词。【只要是一个前缀包含的连续文本就能匹配】
    例如 文档字段为 i love you      查询条件为 i love yo
match_phrase下无法匹配,因为 文档中 you 是一个完整的单词;match_pharse_prefix 就可以匹配。
**match_bool_prefix**:条件进行分词,执行 bool > should 查询。前面的词 做 term 查询,最后一个词做 perfix 查询。
**match_all查询**:查询所有数据【一般测试使用】。
全文检索(full text)查询:利用分词器对文本内容分词,然后倒排索引匹配【例如match_query, multi_match_query】。
**multi_match查询**:将条件应用到多个文档字段上进行匹配。
**精确查询**:根据精确词条值查找数据,一般是查找keyword、数值、日期、boolean等类型字段【例如ids, range, term】。
**wildcard查询(通配符查询)**:通配符查询,支持*和?。
   *:匹配 0 个或多个任意字符
   ?:匹配 1 个任意字符

二、DSL的简单查询

为了更好的去理解ES简单查询操作的结果情况,我们要思考一个问题:
(1)、在实际查询时,往往有的字段进行查询匹配,时常无法搜索到数据,ES搜索匹配到底受哪些因素影响

====为了说明更好的解释分析,需要相关字段进行mapping设置,具体结合字段的分词等属性,然后再结合简单查询操作,来有效分析查询结果。

1、相关字段的设置

knowledge_name字段
要查询的knowledge_name字段的ES设置属性如下

        "knowledge_name": {
   
          "type": "text",
          "fields": {
   
            "keyword": {
   
              "type": "keyword",
              "ignore_above": 256,
              "normalizer": "lowercase_normalizer"
            
  • 22
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

DreamBoy_W.W.Y

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值