1、query string search方式的条件查询:
搜索商品名称中包含yagao的商品,而且按照售价降序排序:
GET /ecommerce/product/_search?q=name:yagao&sort=price:desc
2、query DSL的方式
DSL:Domain Specified Language,特定领域的语言
查询所有的商品
GET /ecommerce/product/_search
{
"query":{"match_all":{} }
}
查询名称包含yagao的商品,同时按照价格降序排序:
GET /ecommerce/product/_search
{
"query":{
"match":{
"name":"yagao"
}
},
"sort":[
{"price":"desc"}
]
}
分页查询商品,每页一个:
GET /ecommerce/product/_search
{
"query":{
"match_all":{}
},
"from":1, #第二页
"size":1
}
只查询商品的名称和价格:
GET /ecommerce/product/_search
{
"query":{
"match_all":{}
},
"_source":["name","price"]
}
3、query filter,对数据进行过滤的方式
查询名称包含yagao,并且售价大于25的商品: bool可以封装多个查询条件
GET /ecommerce/product/_search
{
"query":{
"bool":{
"must":{
"match":{
"name":"yagao"
}
},
"filter":{
"range":{
"price":{
"gt" : 25
}
}
}
}
}
}
4、全文检索
GET /ecommerce/product/_search
{
"query":{
"match":{
"producer":"yagao producer"
#producer字段会先被拆解,建立倒排索引,包含yagao或者produce都可以r#
}
}
}
5、phrase search (短语搜索)
跟全文检索相对应,相反,全文检索会将输入的搜索串拆解开来,去倒排索引里面一一匹配,只要能匹配上任意一个拆解后的单词,就可以作为结果返回,phrase search,要求输入的搜索串必须在指定的字段文本中完全包含一模一样的,才可以算匹配,才能作为结果返回
GET /ecommerce/product/_search
{
"query":{
"match_phrase":{
"producer":"yagao producer"
}
}
}
6、高亮搜索结果
GET /ecommerce/product/_search
{
"query":{
"match":{
"producer":"yagao"
}
},
"highlight":{
"fields":{
"producer":{}
}
}
}