Elastic Search中term等查询

Term词项概念

整个语句文字分为一个词
字段类型:主要是keyword类型,其余非text类型部分可用,数据内容长度有限制,2的16次方字节。

先看看我得index的mapping结构

{
  "dsp_qynw_article_index" : {
    "mappings" : {
      "properties" : {
        "announceLabel" : {
          "type" : "keyword"
        },
        "column" : {
          "type" : "keyword"
        },
        "content" : {
          "type" : "text",
          "analyzer" : "ik_max_word"
        },
        "contentSummary" : {
          "type" : "keyword"
        },
        "coverImage" : {
          "type" : "keyword"
        },
        "createCode" : {
          "type" : "keyword"
        },
        "createTime" : {
          "type" : "date",
          "format" : "yyyy-MM-dd HH:mm:ss.SSS||yyyy-MM-dd HH:mm:ss||epoch_millis"
        },
        "effectiveTime" : {
          "type" : "date",
          "format" : "yyyy-MM-dd HH:mm:ss.SSS||yyyy-MM-dd HH:mm:ss||epoch_millis"
        },
        "groups" : {
          "type" : "keyword"
        },
        "id" : {
          "type" : "long"
        },
        "isTop" : {
          "type" : "boolean"
        },
        "keywords" : {
          "type" : "text",
          "analyzer" : "ik_max_word"
        },
        "orgCode" : {
          "type" : "keyword"
        },
        "orgName" : {
          "type" : "keyword"
        },
        "section" : {
          "type" : "keyword"
        },
        "title" : {
          "type" : "text",
          "analyzer" : "ik_max_word"
        },
        "updateTime" : {
          "type" : "date",
          "format" : "yyyy-MM-dd HH:mm:ss.SSS||yyyy-MM-dd HH:mm:ss||epoch_millis"
        },
        "viewsNum" : {
          "type" : "long"
        }
      }
    }
  }
}

请注意,title类型是text的

GET dsp_qynw_article_index/_search
{
 "track_total_hits": true ,
 "query": {
   "bool": {
     "must": [
       {
         "term": {
           "title": {
             "value": "测试弹窗"
           }
         }
       }
     ]
   }
 }
}

term不支持大小写的转换,无法搜索text类型。match就支持大小写搜索。

range的范围查询(BKD树算法),性能不如精确查询(倒排索引)。

GET dsp_qynw_article_index/_search
{
 "track_total_hits": true ,
 "query": {
   "bool": {
     "must": [
       {
        "range": {
          "viewsNum": {
            "gte": 10,
            "lte": 200
          }
        }
       }
     ]
   }
 }
}

参数case_insensitive可以忽略大小写

GET dsp_qynw_article_index/_search
{
 "track_total_hits": true ,
 "query": {
   "bool": {
     "must": [
       {
        "term": {
          "section": {
            "value": "seckqagOge6",
            "case_insensitive":true
          }
        }
       }
     ]
   }
 }
}

Terms查询

类似于mysql中的in查询

GET dsp_qynw_article_index/_search
{
 "track_total_hits": true ,
 "query": {
   "bool": {
     "filter": [
       {
        "terms": {
          "id": [
            "79673",
            "79669"
          ]
        }
       }
     ]
   }
 }
}

fuzzy 纠错查询

fuziness的值代表纠错的文字个数

GET dsp_qynw_article_index/_search
{
  "track_total_hits": true,
  "query": {
    "bool": {
      "must": [
        {
          "fuzzy": {
            "title": {
              "value": "安1全",
              "fuzziness": 1
            }
          }
        }
      ]
    }
  }
}

prefix 前缀查询

GET dsp_qynw_article_index/_search
{
  "track_total_hits": true,
  "query": {
    "bool": {
      "must": [
        {
          "prefix": {
            "title": {
              "value": "安全"
            }
          }
        }
      ]
    }
  }
}

wildcard 通配查询

GET dsp_qynw_article_index/_search
{
  "track_total_hits": true,
  "query": {
    "wildcard": {
      "title": {
        "value": "*安全*"
      }
    }
  }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值