深入理解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"
    }
  }
}

上一篇:SAP Spartacus Customizing Meta Tags


下一篇:判断十亿以内素数的个数