elasticsearch从入门到出门-03-多种搜索
1、query string search
2、query DSL
3、query filter
4、full-text search
5、phrase search
6、highlight search
GET /ecommerce/product/_search
可以查询出当前索引下这个类型的所有数据,
took 本次搜索耗费的时间:毫秒
timed_out:是否超时,这里是没有
—shards 分片所以对于搜索请求,会打到所有的primary shard(或者是它的某个replica shard也可以)
hits
total 查询到的是2个document
max_score :搜索时候的相关性匹配分数
qi
其实这种方式主要是采用的是get的url拼接类似!
2、query DSL
DSL 意思是特殊领域的查询语言:Domain Specified Language,
请求体可以是JSON格式的:
查询包含yagao,且按照价格排序
GET /ecommerce/product/_search
{
"query": {
"match": {
"name": "yagao"
}
},"sort": [
{
"price": {
"order": "asc"
}
}
]
}
分页查询商品每一页显示1条数据,显示第2页:
GET /ecommerce/product/_search
{
"query": {
"match_all": {}
},
"from": 1
, "size": 1
}
只查询出来商品的名称和价格就可以:
GET /ecommerce/product/_search
{
"query": { "match_all": {} },
"_source": ["name", "price"]
}
非常适合生产环境。
3、query filter 相当于查询时候进行过滤了
查询包含牙膏的,并且价格大于21的
GET /ecommerce/product/_search
{
"query" : {
"bool" : {
"must" : {
"match" : {
"name" : "yagao"
}
},
"filter" : {
"range" : {
"price" : { "gt" : 21 }
}
}
}
}
}
4、full-text search 全文检索
GET /ecommerce/product/_search
{
"query": {
"match": {
"producer": "zhonghua"
}
}
}
5、phrase search 短词搜索
注意:这个搜索时精确的搜索,不会对查询的词进行拆分,类似于不会模糊查询然会返回
但是和全文搜索相反,全文搜索或在把查询的参数进行拆分,再去倒排索引上进行查询!
GET /ecommerce/product/_search
{
"query": {
"match_phrase": {
"producer": "produce"
}
}
}
6、highlight search 高亮搜索
总结下这6中搜索:
第一种url拼接形式的搜索,实战中用的少
第二种搜索:DSL 搜索 相对第一种搜索已经很大的提高,采用JSON格式参数进行搜索
第三种:过滤搜索
第四种:全文搜索,还是很有用的
第五种:短词精确搜索
第6个是高亮,在做检索时候还是很有用的
坚持才是进步的开始!
最新文章
- thinkPHP 标题
- 谷歌Cartographer学习(1)-快速安装测试
- 测试-ConstantForce的驱动方式以及是否穿透
- 卷积神经网络(CNN)
- 【ACM】魔方十一题
- Adobe Edge Animate –可重复使用的个性化按钮制作
- cpan安装及其使用
- html中的rowspan和colspan
- [UWP]了解模板化控件(1):基础知识
- 创建一个可用的简单的SpringMVC项目,图文并茂
- Django学习-8-模板渲染的一些特性
- 数据结构基础(21) --DFS与BFS
- PHP变量的定义与相应的数据类型
- yii2.0 路由美化以及自定义设置
- ES6中6种声明变量的方法
- hbase的api操作之scan
- this is incompatible with sql_mode=only_full_group_by
- NEST - 编写查询
- Spring获取bean工具类,可用于在线程里面获取bean
- 从逻辑思维中学习CSS,从宽高说起
热门文章
- 【Hadoop】如何形象描述大数据生态?
- 【重点突破】—— Easy Mock的使用及Mock.js规范
- 转: 由socket的accept说开去
- Elasticsearch教程(八) elasticsearch delete 删除数据(Java)
- Nodejs 模拟telnet
- JVM源码分析之FinalReference完全解读
- JavaScript target与currentTarget区别
- LeetCode题目:Best Time to Buy and Sell Stock
- [转载]Error -27796: Failed to connect to server
- Java-帮助文档的制作