美文网首页
ES 入门备忘录

ES 入门备忘录

作者: yandaxin | 来源:发表于2020-04-13 15:13 被阅读0次

1、按照文档 ES官方文档
聚合是报错的,错误原因是这个字段不是keyboard,是text,默认不支持聚合操作。

聚合操作报错
解决方法

2、批量取回多个doc

GET /_mget
{
   "docs" : [
      {
         "_index" : "website",
         "_type" :  "blog",
         "_id" :    2
      },
      {
         "_index" : "website",
         "_type" :  "pageviews",
         "_id" :    1,
         "_source": "views"
      }
   ]
}

3、批量多个操作

POST /_bulk
{ "create": { "_index": "website", "_type": "blog", "_id": "123" }}
{ "title":    "Cannot create - it already exists" }
{ "index":  { "_index": "website", "_type": "blog", "_id": "123" }}
{ "title":    "But we can update it" }

3、查看es是如何分析文本的

GET /_analyze
{
  "analyzer": "standard", //指定分析器
  "text": "Text to analyze",//要分析的文本
}

4、Es 6.x之后,field类型不再支持string,改成text、keyword。text类型默认会被倒排索引,keyword用于精确查找。

PUT /gb/_mapping
{
  "properties" : {
    "tag1" : {
      "type" :    "keyword"
    }
  }
}
注意看tag1 和 tagq keyword 不分析 text 分析 即使将text的index设置为false,还是会分析
查询

1、请求体查询
2、查询和过滤的区别
总而言之,过滤只有yes or no,如果yes查询结果放入缓存,如果no拜拜,因此性能更高;查询会评估字段与query的匹配度,有分析的过程在里面,虽然es在全文索引方面做得不俗,当我们往往认知的是过滤更快。

使用filter不评估score

3、最重要的查询 —— 学会这些查询够用了!

一个简单的and查询
GET /gb/_search
{
  "query": {
    
    "bool":{
      "must":[
        {"match":{"tagq":"yesok"}},
        {"match":{"tweet":"ins"}}
        ]
  }
  }
}

相关文章

网友评论

      本文标题:ES 入门备忘录

      本文链接:https://www.haomeiwen.com/subject/lwogmhtx.html