【精】elasticsearch学习与实践(第二讲)

各种搜索方式的比较

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:数据拆成了5个分片,所以对于搜索请求,会打到所有的primary shard(或者是它的某个replica shard也可以)
hits.total:查询结果的数量,3个document
hits.max_score:score的含义,就是document对于一个search的相关度的匹配分数,越相关,就越匹配,分数也高
hits.hits:包含了匹配搜索的document的详细数据

#查看es状况 
GET _cat/health?v
#查看所有的索引 
GET _cat/indices?v

PUT /ecommerce/product/4
{
  "name": "special yagao",
  "desc": "special meibai",
  "price": 50,
  "producer": "special yagao producer",
  "tags": [
    "meibai"
  ]
}
#-------String------------------------------------------------------
#查询所有的商品 
GET /ecommerce/product/_search
#查询指定名称的商品以及按照商品价格降序排序 
GET /ecommerce/product/_search?q=name:gaolujie&sort=price:desc 
#--------DSL--------------------------------------------------------
#查询所有 
GET /ecommerce/product/_search
{
  "query": {"match_all": {}}
}
#查询所有,只显示name,price 
GET /ecommerce/product/_search
{
  "query": {"match_all": {}},
  "_source": ["name","price"]
}
#查询指定名称的商品以及按照商品价格降序排序 
GET /ecommerce/product/_search
{
  "query": {"match": {
    "name": "yagao"
  }},
  "sort": [
    {
      "price":"desc"
    }
  ]
}
#分页查询,查询第一页
GET /ecommerce/product/_search
{
  "query": {"match_all": {}}, 
  "sort": [
    {
      "price": {
        "order": "desc"
      }
    }
  ], 
  "from": 0,
  "size": 1
}
#--------filter---------------------------------------------------------
#搜索商品名称包含yagao,而且售价大于25元的商品
GET /ecommerce/product/_search
{
  "query": {
    "bool": {
      "must": [
        {
          "match": {
            "name": "yagao"
          }
        }
      ],
      "filter": {
        "range": {
          "price": {
            "gt": 25
          }
        }
      }
    }
  }
}
#--------full-text-----------------------------------------------------
#全文检索(any匹配 )
GET /ecommerce/product/_search
{
  "query": {
    "match": {
      "producer": "yagao producer"
    }
  }
}
#--------phrase-search------------------------------------------------
#短语检索(完全匹配 )
GET /ecommerce/product/_search
{
  "query": {
    "match_phrase": {
      "producer": "yagao producer"
    }
  }
}
#--------hight-lignt------------------------------------------------
#高亮搜索
GET /ecommerce/product/_search
{
  "query": {
    "match": {
      "producer": "producer"
    }
  },
  "highlight": {
    "fields": {
      "producer":{}
    }
  }
}

猜你喜欢

转载自blog.csdn.net/fenglixiong123/article/details/79089585
今日推荐