zoukankan      html  css  js  c++  java
  • 深入理解elasticsearch-读书笔记

    es基本查询

    添加索引

    put /new_test
    {
      "mappings": {
        "properties": {
          "author": {
            "type": "text"
          },
          "characters": {
            "type": "text"
          },
          "copies": {
            "type": "long"
          },
          "otitle": {
            "type": "text"
          },
          "tags": {
            "type": "keyword"
          },
          "title": {
            "type": "text"
          },
          "year": {
            "type": "long"
          },
          "available": {
            "type": "boolean"
          },
          "review": {
            "type": "nested",
            "properties": {
              "nickname": {
                "type": "text"
              },
              "text": {
                "type": "text"
              },
              "stars": {
                "type": "integer"
              }
            }
          }
        }
      }
    }
    

    批量插入数据

    post /new_test/_bulk
    { "index" : {  "_id" : "1" } }
    {"title":"All Quiet on the Western Front","otitle":"Im Westen nichts Neues","author":"Erich Maria Remarque","year":1929,"characters":["Paul Bäumer","Albert Kropp","Haie Westhus","Fredrich Müller","Stanislaus Katczinsky","Tjaden"],"tags":["novel"],"copies":1,"available":true,"section":3}
    {"index":{"_id":"2"}}
    {"title":"Catch-22","author":"Joseph Heller","year":1961,"characters":["John Yossarian","Captain Aardvark","Chaplain Tappman","Colonel Cathcart","Doctor Daneeka"],"tags":["novel"],"copies":6,"available":false,"section":1}
    {"index":{"_id":"3"}}
    {"title":"The Complete Sherlock Holmes","author":"Arthur Conan Doyle","year":1936,"characters":["Sherlock Holmes","Dr. Watson","G. Lestrade"],"tags":[],"copies": 0, "available":false, "section":12}
    

    查询[1,3]区间的数据

    get /new_test/_search
    {
      "query":{
        "range":{
          "copies":{
            "gte":1,
            "lte":3
          }
        }
      }
    }
    

    找出所有至少有一本的书籍,并对1950年后出版的书籍进行加权

    get /new_test/_search
    {
      "query":{
        "bool":{
          "must":[{"range":{"copies":{"gte":1}}}],
          "should":[{"range":{"year":{"gt":1950}}}]
            
        }
      }
    }
    

    查找出所有tags字段包含novel值的书籍

    get /new_test/_search
    {
      "query":{
         "term":{
           "tags":"novel"
         }
      }
    }
    

    前缀查询

    get /new_test/_search
    {
      "query":{
         "prefix":{
           "title":"qu"
         }
      }
    }
    

    匹配短语

    get /new_test/_search
    {
      "query":{
        "match_phrase":{
          "otitle":"nichts"
        }
      }
    }
    
    

    最佳字段匹配

    GET /library/_search?pretty
    {
     "query" : {
      "multi_match" : {
       "query" : "Holmes",
       "fields" : [ "title", "author", "characters" ],
       "type" : "best_fields",
       "tie_breaker" : 0.8
      }
     }
    }
    

    短语匹配

    GET /library/_search?pretty
    {
    
     "query" : {
      "multi_match" : {
       "query" : "sherlock holmes",
       "fields" : [ "title", "author" ],
       "type" : "phrase"
      }
     }
    }
    

    带前缀短语匹配

    GET /library/_search?pretty
    {
    
     "query" : {
      "multi_match" : {
       "query" : "Cat",
       "fields" : [ "title", "author" ],
       "type" : "phrase_prefix"
      }
     }
    }
     
    

    改正用户拼写错误

    get /bank/_search
    {
      "suggest":{
        "first_suggestion":{
          "text":"chorme",
          "term":{
            "field":"title"
          }
        }
      }
    }
    

    会得到不同的用户建议和分数

    text:Elasticsearch给出的建议词。
    score:建议词的得分,得分越高的建议词,其质量越高。
    freq:建议词在文档中出现的频率

  • 相关阅读:
    Go
    list的基本操作实现
    天梯赛练习题L2-006. 树的遍历
    部署 Fluent Bit ( td-agent-bit )
    elastalert + supervisor
    elastalert搭建
    Docker 部署 kibana( ES开启了密码认证)
    Docker 部署 elasticsearch( ES开启了密码认证)
    Python yaml模块
    Python json和pickle模块
  • 原文地址:https://www.cnblogs.com/Baronboy/p/15343528.html
Copyright © 2011-2022 走看看