>백엔드 개발 >PHP 튜토리얼 >ElasticSearch의 기본 동작을 요약해 보세요! 매우 상세합니다!

ElasticSearch의 기본 동작을 요약해 보세요! 매우 상세합니다!

藏色散人
藏色散人앞으로
2022-12-07 16:37:226403검색

es 다운로드 주소
IK 단어 분할기 다운로드 주소

Index

  • Create index
    관계형 데이터베이스에 비해 인덱스 생성은 데이터베이스 생성과 같습니다
      PUT请求
      http://127.0.0.1:9200/shopping
  • Query index
      GET请求
      http://127.0.0.1:9200/shopping
  • Query all indexes
      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":"商品"}
  • Delete

      POST请求 ,创建自定义id
      http://127.0.0.1:9200/shopping/_doc/1001
    Query
  • 조건부 쿼리
  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":"局部修改商品"}}
  • 필드 페이징 지정 쿼리(_source)

      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":{
              }
          }
      }
  • 범위 쿼리(필터, 범위)

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

    전체 텍스트 검색 일치(단어 분할)(일치)
      GET请求
      http://127.0.0.1:9200/shopping/_search  {
          "query":{
              "match_all":{
              }
          },
          "from":0,#起始位置/偏移量 ,公式:(页码-1)* 每页数据条数      "size":10,#每页查询10条      "_source":["title"]
      }

  • 정확한 일치(match_phrase)

      GET请求
      http://127.0.0.1:9200/shopping/_search  {
          "query":{
              "match_all":{
              }
          },
          "from":0,#起始位置/偏移量 ,公式:(页码-1)* 每页数据条数      "size":10,#每页查询10条      "_source":["title"],
          "sort":{
              "price":{
                  "order":"desc"
              }
          }
      }
  • 검색어 강조표시(하이라이트, 결과에 html 태그 추가)

      GET请求
      http://127.0.0.1:9200/shopping/_search  {
          "query":{
              "bool":{
                  "must":[ 
                      {
                          "match":{
                              "category":"小米"
                          }
                      },
                      {
                          "match":{
                              "price":1999.00
                          }
                      }
                  ]
              }
          }
      }
    집계 query
  • 통계 및 원시 데이터 반환
  •   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
                          }
                      }
                  }
              }
          }
      }
  • average
  •   GET请求
      http://127.0.0.1:9200/shopping/_search  {
          "query":{
              "match":{
                  "category": "小华"
              }
          }
      }
  • 매핑 관계

    매핑 생성
  •   GET请求
      http://127.0.0.1:9200/shopping/_search  {
          "query":{
              "match_phrase":{
                  "category": "小华"
              }
          }
      }
  • 쿼리 매핑
  •   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
              }
          }
      }

  • 위 내용은 ElasticSearch의 기본 동작을 요약해 보세요! 매우 상세합니다!의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

    성명:
    이 기사는 learnku.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제