es筛选数据_ES 21 - Elasticsearch的高级检索语法 (包括term、prefix、wildcard、fuzzy、boost等)...

本文详细介绍了Elasticsearch的高级检索语法,包括term、prefix、wildcard、fuzzy、boost等查询方式,以及dis_max和exist查询的用法,并提供了多个示例展示如何在实践中应用这些查询技巧。
摘要由CSDN通过智能技术生成

目录

1 term query - 索引词检索

1.1 term query - 不分词检索

term query: 把检索串当作一个整体来执行检索, 即不会对检索串分词.

term是完全匹配检索, 要用在不分词的字段上, 如果某个field在映射中被分词了, term检索将不起作用.

所以, 不分词的field, 要在mapping中设置为不分词.

—— es 5.x之后, 为每个text类型的字段新增了名为keyword的子字段, 是不分词的, 默认保留256个字符.

—— 可以使用keyword字段进行term检索. 示例:

get shop/_search

{

"query": {

"term": {

"name.keyword": "java编程思想"

}

}

}

1.2 terms query - in检索

terms, 相当于多个term检索, 类似于sql中in关键字的用法, 即在某些给定的数据中检索:

get shop/_search

{

"query": {

"terms": {

"name.keyword": [

"java编程思想", "java并发编程的艺术"

]

}

}

}

2 prefix query - 前缀检索

prefix query, 就是前缀检索. 比如商品name中有多个以"java"开头的document, 检索前缀"java"时就能检索到所有以"java"开头的文档.

—— 扫描所有倒排索引, 性能较差.

get shop/_search

{

"query": {

"prefix": { "name": "java" }

}

}

3 wildcard query - 通配符检索

扫描所有倒排索引, 性能较差.

get shop/_search

{

"query": {

"wildcard": { "name": "ja*" }

}

}

4 regexp query - 正则检索

扫描所有倒排索引, 性能较差.

get shop/_

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值