curl -XGET http://localhost:9200/test/cd1/1/_source=name,age
curl -XGET http://localhost:9200/test/cd1/1/_source?pretty
curl -XGET http://localhost:9200/test/cd1/_source?pretty
curl -XGET http://localhost:9200/test/cd1/_source?q=name:alex
GET _search
{
"query": {
"range": {
"age": {
"gte": 25,
"lte": 30
}
}
}
}
GET /product_index/product/_search
{
"query": {
"match": {
"product_name": "toothbrush"
}
},
"sort": [
{
"price": "desc"
}
]
}
GET /product_index/product/_search
{
"query": {
"match_all": {}
}
}
GET /product_index/product/_search
{
"query": {
"match_all": {}
},
"from": 0, ## 从第几个商品开始查,最开始是 0
"size": 1 ## 要查几个结果
}
GET /product_index/product/_search
{
"query": {
"match_all": {}
},
"_source": [
"product_name",
"price"
]
}
GET /product_index/product/_search
{
"query": {
"bool": {
"must": {
"match": {
"product_name": "toothbrush"
}
},
"filter": {
"range": {
"price": {
"gt": 400,
"lt": 700
}
}
}
}
}
match 查询相关总结
1、match:返回所有匹配的分词。
2、match_all:查询全部。
3、match_phrase:短语查询,在match的基础上进一步查询词组,可以指定slop分词间隔。
4、match_phrase_prefix:前缀查询,根据短语中最后一个词组做前缀匹配,可以应用于搜索提示,但注意和max_expanions搭配。其实默认是50…
5、multi_match:多字段查询,使用相当的灵活,可以完成match_phrase和match_phrase_prefix的工作。
倒叙排序
GET test/doc/_search
{
"query": {
"match_all": {}
},
"sort": [
{
"age": {
"order": "desc"
}
}
]
}
升序排序
GET test/doc/_search
{
"query": {
"match_all": {}
},
"sort": [
{
"age": {
"order": "asc"
}
}
]
}
单条件查询
MUST是必须符合才显示
GET test/doc/_search
{
"query": {
"bool": {
"must": [
{
"match": {
"name": "wangfei"
}
}
]
}
}
}
多条件组合查询
GET test/doc/_search
{
"query": {
"bool": {
"must": [
{
"match": {
"name": "wanggfei"
}
},{
"match": {
"age": 25
}
}
]
}
}
}
should (只要符合其中一个条件就返回)
GET test/doc/_search
{
"query": {
"bool": {
"should": [
{
"match": {
"name": "wangjifei"
}
},{
"match": {
"age": 27
}
}
]
}
}
}
must_not 顾名思义,非语句
GET test/doc/_search
{
"query": {
"bool": {
"must_not": [
{
"match": {
"name": "wangjifei"
}
},{
"match": {
"age": 27
}
}
]
}
}
}
filter(条件过滤查询,过滤条件的范围用range表示gt表示大于、lt表示小于、gte表示大于等于、lte表示小于等于)
GET test/doc/_search
{
"query": {
"bool": {
"must": [
{
"match": {
"name": "wangjifei"
}
}
],
"filter": {
"range": {
"age": {
"gte": 10,
"lt": 27
}
}
}
}
}
}
bool查询总结
must:与关系,相当于关系型数据库中的 and。
should:或关系,相当于关系型数据库中的 or。
must_not:非关系,相当于关系型数据库中的 not。
filter:过滤条件。
range:条件筛选范围。
gt:大于,相当于关系型数据库中的 >。
gte:大于等于,相当于关系型数据库中的 >=。
lt:小于,相当于关系型数据库中的 <。
lte:小于等于,相当于关系型数据库中的 <=。