ElasticSearch学习使用基础

_index + _type + _id共同决定唯一的文档。

Elastic数据管理的顶层单位就是索引Index(单个数据库的同义词),
每个 Index (即数据库)的名字必须是小写;
Index里面的单条记录称为Document(文档),
许多条Document构成了索引,Document 使用 JSON 格式表示;
Document 可以分组,比如weather这个 Index 里面,可以按城市分组(北京和上海),也可以按气候分组(晴天和雨天)。这种分组就叫做 Type,它是虚拟的逻辑分组,用来过滤 Document。

返回说明:
took:表示该操作的耗时(单位为毫秒)
timed_out:表示是否超时
hits:表示命中的记录
total:返回记录数
max_score:最高的匹配程度
hits:返回的记录组成的数组

查询:
term:查询某个字段里含有某个关键词的文档,这种查询适合keyword、numeric、date等明确值。

    GET /customer/doc/_search/
    {
      "query": {
        "term": {
          "title":"blog"
        }
      }
    }

terms:查询某个字段里含有多个关键词的文档

    GET /customer/doc/_search/
    {
      "query": {
        "terms": {
          "title":[ "blog","first"]
        }
      }
    }

match query: 知道分词器的存在,会对field进行分词操作,然后再查询

    GET /customer/doc/_search/
    {
      "query": {
        "match": {
          "title":  "my ss"   #它和term区别可以理解为term是精确查询,这边match模糊查询;match会对my ss分词为两个单词,然后term对认为这是一个单词
        }
      }
    }

match_all:查询所有文档

    GET /customer/doc/_search/
    {
      "query": {
        "match_all": {}
      }
    }

multi_match:可以指定多个字段

    GET /customer/doc/_search/
    {
      "query": {
        "multi_match": {
          "query" : "blog",
          "fields":  ["name","title"]   #只要里面一个字段包含值 blog 既可以
        }
      }
    }

match_phrase:短语匹配查询

ES引擎首先分析查询字符串,从分析后的文本中构建短语查询,这意味着必须匹配短语中的所有分词,并且保证各个分词的相对位置不变

_source:当我们希望返回结果只是一部分字段时,可以加上_source

    GET /customer/doc/_search/
    {
      "_source":["title"],  #只返回title字段
      "query": {
        "match_all": {}
      }
    }

fuzzy:实现模糊查询
value:查询的关键字
boost:查询的权值,默认值是1.0
min_similarity:设置匹配的最小相似度,默认值0.5,对于字符串,取值0-1(包括0和1);对于数值,取值可能大于1;对于日期取值为1d,1m等,1d等于1天
prefix_length:指明区分词项的共同前缀长度,默认是0

    GET /customer/doc/_search/
    {
       
      "query": {
        "fuzzy": {
          "name": {
            "value": "blg"
          }
        }
      } 
    }

    #返回:
    {
      "took": 8,
      "timed_out": false,
      "_shards": {
        "total": 5,
        "successful": 5,
        "skipped": 0,
        "failed": 0
      },
      "hits": {
        "total": 1,
        "max_score": 0.19178805,
        "hits": [
          {
            "_index": "customer",
            "_type": "doc",
            "_id": "1",
            "_score": 0.19178805,
            "_source": {
              "name": "blog",
              "tags": [
                "testing"
              ],
              "title": "i am a doc"
            }
          }
        ]
      }
    }

你可能感兴趣的:(ElasticSearch学习使用基础)