ホームページ  >  記事  >  バックエンド開発  >  ElasticSearchの基本操作をまとめます!とても詳しいです!

ElasticSearchの基本操作をまとめます!とても詳しいです!

藏色散人
藏色散人転載
2022-12-07 16:37:226367ブラウズ

es ダウンロード アドレス
IK ワード セグメンター ダウンロード アドレス

インデックス

  • インデックスの作成
    リレーショナル データベースと比較すると、インデックスの作成はデータベースの作成と同等です
      PUT请求
      http://127.0.0.1:9200/shopping
  • クエリのインデックス
      GET请求
      http://127.0.0.1:9200/shopping
  • すべてのインデックスのクエリ
      GET请求
      http://127.0.0.1:9200/_cat/indices?v
  • 削除インデックス
      DELETE请求
      http://127.0.0.1:9200/shopping
#Document

インデックスが作成されました。次に、ドキュメントを作成してデータを追加します。ここでのドキュメントはリレーショナル データベースのテーブル データと比較でき、追加されたデータ形式は JSON 形式です

  • ドキュメントの作成

      POST请求
      http://127.0.0.1:9200/shopping/_doc #写法一
      http://127.0.0.1:9200/shopping/_create # 写法二  {"name":"商品"}
      PUT请求,主键必须幂等性
      http://127.0.0.1:9200/shopping/_doc/1001 #写法一
      http://127.0.0.1:9200/shopping/_create/1002 # 写法二  {"name":"商品"}
      POST请求 ,创建自定义id
      http://127.0.0.1:9200/shopping/_doc/1001
  • プライマリキークエリ

      GET请求
      http://127.0.0.1:9200/shopping/_doc/1001
  • 完全なクエリ

      GET请求
      http://127.0.0.1:9200/shopping/_search
  • 完全な変更

      PUT请求
      http://127.0.0.1:9200/shopping/_doc/1001
      {"name":"商品"}
  • 部分的な変更

      POST请求
      http://127.0.0.1:9200/shopping/_update/1001
      {"doc":{"name":"局部修改商品"}}
  • 削除

      DELETE请求
      http://127.0.0.1:9200/shopping/_doc/1001
    クエリ

  • 条件付きクエリ

      GET请求,方法一
      http://127.0.0.1:9200/shopping/_search?q=category:小米
      http://127.0.0.1:9200/shopping/_search?q=name:商品
      GET请求,方法二(推荐)
      http://127.0.0.1:9200/shopping/_search  {
          "query":{
              "match":{
                  "category":"小米"
              }
          }
      }
  • 完全なクエリ

      GET请求
      http://127.0.0.1:9200/shopping/_search  {
          "query":{
              "match_all":{
              }
          }
      }
  • ページング クエリ (from、size)

      GET请求
      http://127.0.0.1:9200/shopping/_search  {
          "query":{
              "match_all":{
              }
          },
          "from":0,#起始位置/偏移量 ,公式:(页码-1)* 每页数据条数      "size":10,#每页查询10条  }
  • フィールド ページング クエリを指定 (_source)

      GET请求
      http://127.0.0.1:9200/shopping/_search  {
          "query":{
              "match_all":{
              }
          },
          "from":0,#起始位置/偏移量 ,公式:(页码-1)* 每页数据条数      "size":10,#每页查询10条      "_source":["title"]
      }
    クエリの並べ替え (sort)

      GET请求
      http://127.0.0.1:9200/shopping/_search  {
          "query":{
              "match_all":{
              }
          },
          "from":0,#起始位置/偏移量 ,公式:(页码-1)* 每页数据条数      "size":10,#每页查询10条      "_source":["title"],
          "sort":{
              "price":{
                  "order":"desc"
              }
          }
      }

    複数条件クエリ

  • andクエリ(must)

      GET请求
      http://127.0.0.1:9200/shopping/_search  {
          "query":{
              "bool":{
                  "must":[ 
                      {
                          "match":{
                              "category":"小米"
                          }
                      },
                      {
                          "match":{
                              "price":1999.00
                          }
                      }
                  ]
              }
          }
      }
  • またはクエリ( should)

      GET请求
      http://127.0.0.1:9200/shopping/_search  {
          "query":{
              "bool":{
                  "should":[ 
                      {
                          "match":{
                              "category":"小米"
                          }
                      },
                      {
                          "match":{
                              "price":1999.00
                          }
                      }
                  ]
              }
          }
      }
  • 範囲クエリ (フィルター、範囲)

      GET请求
      http://127.0.0.1:9200/shopping/_search  {
          "query":{
              "bool":{
                  "should":[
                      {
                          "match":{
                              "category":"小米"
                          }
                      },
                      {
                          "match":{
                              "price":1999.00
                          }
                      }
                  ],
                  "filter":{
                      "range":{
                          "price":{
                              "gt":5000
                          }
                      }
                  }
              }
          }
      }
  • 全文検索一致 (単語分割) (一致)

      GET请求
      http://127.0.0.1:9200/shopping/_search  {
          "query":{
              "match":{
                  "category": "小华"
              }
          }
      }
  • 完全一致 (match_phrase)

      GET请求
      http://127.0.0.1:9200/shopping/_search  {
          "query":{
              "match_phrase":{
                  "category": "小华"
              }
          }
      }
  • ハイライト クエリ (ハイライト、結果に HTML タグを追加)

      GET请求
      http://127.0.0.1:9200/shopping/_search  {
          "query":{
              "match_phrase":{
                  "category": "小华"
              }
          },
          "hightlight":{
              "fields":{
                  "category":{}
              }
          }
      }
    集計クエリ

  • 統計と生データを返す

      GET请求
      http://127.0.0.1:9200/shopping/_search  { 
          "aggs":{ #聚合操作          "price_group":{ #名称,随意起名              "terms":{ #分组                  "field":"price" #分组字段              }
              }
          },  }
  • 生データ (サイズ) を閉じる

      GET请求
      http://127.0.0.1:9200/shopping/_search      { 
          "aggs":{ #聚合操作          "price_group":{ #名称,随意起名              "terms":{ #分组                  "field":"price" #分组字段              }
              }
          },      "size":0
      }
  • 平均

      GET请求
      http://127.0.0.1:9200/shopping/_search      { 
          "aggs":{ #聚合操作          "price_avg":{ #名称,随意起名              "age":{ #平均值                  "field":"price" #分组字段              }
              }
          },      "size":0
      }
    マッピング関係

  • マッピングの作成

      PUT请求
      http://127.0.0.1:9200/user/_mapping  { 
          "properties":{
              "name":{
                  "type":"text", #全文检索分词查询              "index":true
              },
              "sex":{
                  "type":"keyword",#完全查询              "index":true
              },
              "tel":{
                  "type":"keyword",#不能查询              "index":false
              }
          }
      }
  • #クエリ マッピング
  •   GET请求
      http://127.0.0.1:9200/user/_mapping

  • 追加データ
  •   PUT请求
      http://127.0.0.1:9200/user/_create/1001
      {
          name:"小米",
          sex:"男的",
          tel:"10010"
      }

  • クエリデータ
  •   GET请求
      http://127.0.0.1:9200/user/_search  {
          "query":{
              "match": {
                  name:"小"
              }
          }
      }
      GET请求
      http://127.0.0.1:9200/user/_search  {
          "query":{
              "match": {
                  sex:"男" #查询不到,必须输入男的          }
          }
      }
      #不支持查询  GET请求
      http://127.0.0.1:9200/user/_search  {
          "query":{
              "match": {
                  tel:"10010" 
              }
          }
      }

以上がElasticSearchの基本操作をまとめます!とても詳しいです!の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はlearnku.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。