国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務器之家 - 腳本之家 - Python - Python-ElasticSearch搜索查詢的講解

Python-ElasticSearch搜索查詢的講解

2021-06-02 00:11奔跑的豆子_ Python

今天小編就為大家分享一篇關于Python-ElasticSearch搜索查詢的講解,小編覺得內容挺不錯的,現在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧

Elasticsearch 是一個開源的搜索引擎,建立在一個全文搜索引擎庫 Apache Lucene™ 基礎之上。 Lucene 可能是目前存在的,不論開源還是私有的,擁有最先進,高性能和全功能搜索引擎功能的庫。但是 Lucene 僅僅只是一個庫。為了利用它,你需要編寫 Java 程序,并在你的 java 程序里面直接集成 Lucene 包。 更壞的情況是,你需要對信息檢索有一定程度的理解才能明白 Lucene 是怎么工作的。Lucene 是 很 復雜的。

在上一篇文章中介紹了ElasticSearch的簡單使用,接下來記錄一下ElasticSearch的查詢

查詢所有數據

?
1
2
3
4
5
6
7
8
9
# 搜索所有數據
es.search(index="my_index",doc_type="test_type")
# 或者
body = {
  "query":{
    "match_all":{}
  }
}
es.search(index="my_index",doc_type="test_type",body=body)

term與terms

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# term
body = {
  "query":{
    "term":{
      "name":"python"
    }
  }
}
# 查詢name="python"的所有數據
es.search(index="my_index",doc_type="test_type",body=body)
# terms
body = {
  "query":{
    "terms":{
      "name":[
        "python","android"
      ]
    }
  }
}
# 搜索出name="python"或name="android"的所有數據
es.search(index="my_index",doc_type="test_type",body=body)

match與multi_match

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# match:匹配name包含python關鍵字的數據
body = {
  "query":{
    "match":{
      "name":"python"
    }
  }
}
# 查詢name包含python關鍵字的數據
es.search(index="my_index",doc_type="test_type",body=body)
# multi_match:在name和addr里匹配包含深圳關鍵字的數據
body = {
  "query":{
    "multi_match":{
      "query":"深圳",
      "fields":["name","addr"]
    }
  }
}
# 查詢name和addr包含"深圳"關鍵字的數據
es.search(index="my_index",doc_type="test_type",body=body)

ids

?
1
2
3
4
5
6
7
8
9
10
11
12
body = {
  "query":{
    "ids":{
      "type":"test_type",
      "values":[
        "1","2"
      ]
    }
  }
}
# 搜索出id為1或2d的所有數據
es.search(index="my_index",doc_type="test_type",body=body)

復合查詢bool

bool有3類查詢關系,must(都滿足),should(其中一個滿足),must_not(都不滿足)

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
body = {
  "query":{
    "bool":{
      "must":[
        {
          "term":{
            "name":"python"
          }
        },
        {
          "term":{
            "age":18
          }
        }
      ]
    }
  }
}
# 獲取name="python"并且age=18的所有數據
es.search(index="my_index",doc_type="test_type",body=body)

切片式查詢

?
1
2
3
4
5
6
7
8
9
body = {
  "query":{
    "match_all":{}
  }
  "from":2  # 從第二條數據開始
  "size":4  # 獲取4條數據
}
# 從第2條數據開始,獲取4條數據
es.search(index="my_index",doc_type="test_type",body=body)

范圍查詢

?
1
2
3
4
5
6
7
8
9
10
11
12
body = {
  "query":{
    "range":{
      "age":{
        "gte":18,    # >=18
        "lte":30    # <=30
      }
    }
  }
}
# 查詢18<=age<=30的所有數據
es.search(index="my_index",doc_type="test_type",body=body)

前綴查詢

?
1
2
3
4
5
6
7
8
9
body = {
  "query":{
    "prefix":{
      "name":"p"
    }
  }
}
# 查詢前綴為"趙"的所有數據
es.search(index="my_index",doc_type="test_type",body=body)

通配符查詢

?
1
2
3
4
5
6
7
8
9
body = {
  "query":{
    "wildcard":{
      "name":"*id"
    }
  }
}
# 查詢name以id為后綴的所有數據
es.search(index="my_index",doc_type="test_type",body=body)

排序

?
1
2
3
4
5
6
7
8
9
10
body = {
  "query":{
    "match_all":{}
  }
  "sort":{
    "age":{         # 根據age字段升序排序
      "order":"asc"    # asc升序,desc降序
    }
  }
}

filter_path

響應過濾

?
1
2
3
4
# 只需要獲取_id數據,多個條件用逗號隔開
es.search(index="my_index",doc_type="test_type",filter_path=["hits.hits._id"])
# 獲取所有數據
es.search(index="my_index",doc_type="test_type",filter_path=["hits.hits._*"])

count

執行查詢并獲取該查詢的匹配數

?
1
2
# 獲取數據量
es.count(index="my_index",doc_type="test_type")

度量類聚合

  • 獲取最小值
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
body = {
  "query":{
    "match_all":{}
  },
  "aggs":{            # 聚合查詢
    "min_age":{         # 最小值的key
      "min":{         # 最小
        "field":"age"    # 查詢"age"的最小值
      }
    }
  }
}
# 搜索所有數據,并獲取age最小的值
es.search(index="my_index",doc_type="test_type",body=body)
  • 獲取最大值
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
body = {
  "query":{
    "match_all":{}
  },
  "aggs":{            # 聚合查詢
    "max_age":{         # 最大值的key
      "max":{         # 最大
        "field":"age"    # 查詢"age"的最大值
      }
    }
  }
}
# 搜索所有數據,并獲取age最大的值
es.search(index="my_index",doc_type="test_type",body=body)
  • 獲取和
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
body = {
  "query":{
    "match_all":{}
  },
  "aggs":{            # 聚合查詢
    "sum_age":{         # 和的key
      "sum":{         # 和
        "field":"age"    # 獲取所有age的和
      }
    }
  }
}
# 搜索所有數據,并獲取所有age的和
es.search(index="my_index",doc_type="test_type",body=body)
  • 獲取平均值
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
body = {
  "query":{
    "match_all":{}
  },
  "aggs":{            # 聚合查詢
    "avg_age":{         # 平均值的key
      "sum":{         # 平均值
        "field":"age"    # 獲取所有age的平均值
      }
    }
  }
}
# 搜索所有數據,獲取所有age的平均值
es.search(index="my_index",doc_type="test_type",body=body)

更多的搜索用法:

https://elasticsearch-py.readthedocs.io/en/master/api.html

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對服務器之家的支持。如果你想了解更多相關內容請查看下面相關鏈接

原文鏈接:https://blog.csdn.net/y472360651/article/details/76652021

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 精品视频一区二区三区四区 | 欧洲一区在线观看 | 一区二区三区 在线 | 美女网站全黄 | 精品视频一区二区三区四区 | 在线视频国产一区 | 亚洲欧美一级久久精品国产特黄 | 日韩视频一区二区三区 | 希岛爱理在线 | 久久福利电影 | 精品一区二区三区视频 | 国产精品99 | 天天澡天天狠天天天做 | 九热精品 | 青青草视频在线免费观看 | 午夜影院在线观看 | 久久精品无码一区二区三区 | 欧美日韩一区二区三区 | 亚洲一区二区三区视频 | 精品护士一区二区三区 | 亚洲精品一区二区三区四区高清 | 日韩在线精品强乱中文字幕 | 午夜视频在线观看网站 | 欧美日韩电影一区 | 成人av在线网 | 天天精品 | 男人久久久| 亚洲中午字幕 | 欧美日韩激情一区 | 综合另类 | 国产精品美女久久久久aⅴ国产馆 | 综合色播 | 日穴视频在线观看 | 国产日韩视频 | 亚洲一区二区免费视频 | a级在线 | 成人免费在线播放 | 中文字幕在线免费看 | 国外成人在线视频网站 | 久久久成人精品 | 亚洲精选一区二区 |