Elasticsearch中的Term查询和全文查询

本文详细介绍了Elasticsearch中的多种查询方式,包括term查询、exists查询、fuzzy查询、ids查询、prefix查询、range查询、regexp查询和terms查询。重点讨论了term查询在全文本和关键词之间的差异,以及如何进行模糊、前缀和范围查询。此外,还提到了字段存在性和正则表达式的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

POST index_001/_search

{

“query”: {

“term”: {

“name.keyword”: {

“value”: “lonely wolf”

}

}

}

}

这里如果不加上 .keyword 则不会返回任何结果,这是因为 text 类型的字段会被倒排索引进行存储,倒排索引会利用分析器将文本进行分词,我们可以利用分词器来查看下分词结果:

POST /_analyze

{

“analyzer”: “standard”,

“text”: [“lonely wolf”]

}

在这里插入图片描述

可以看到,lonely wolf 被分成了 lonelywolf 两个单词,所以我们将 lonely wolf 作为一个进行查询自然是无法查询到结果的。

这里有个地方需要注意,如果我们存入的是大写单词,如 Lonely Wolf,分词器也是一样的结果,也就是会将大写字母统一转化为小写进行存储,所以进行全文查询的时候也是无法查询出结果。

exists 查询

用来判定是否存在某一个字段,返回包含字段的任何索引值的文档。

GET index_002/_search

{

“query”: {

“exists”: {

“field”: “address”

}

}

}

这里返回的结果就是第三条和第四条数据,像 null 值和空数组 [] 不会被返回。

如果想要返回 null 值或者空数组 [] 的数据,那么可以利用 bool 查询的 must_

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值