日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

【全文搜索引擎】Elasticsearch基本查询基础JavaAPI

發布時間:2025/5/22 java 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【全文搜索引擎】Elasticsearch基本查询基础JavaAPI 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

操作索引

ElasticSearch存儲數據的地方,可以理解成關系型數據庫中的數據庫概念。

  • 添加索引
PUT http://ip:端口/索引名稱Kibana操作 --- PUT 索引名稱
  • 查詢索引
GET http://ip:端口/索引名稱 # 查詢單個索引信息 GET http://ip:端口/索引名稱1,索引名稱2... # 查詢多個索引信息 GET http://ip:端口/_all # 查詢所有索引信息Kibana操作 GET 索引名GET 索引名1,索引名2GET _all
  • 刪除索引
DELETE http://ip:端口/索引名稱Kibana操作 --- DELETE 索引名
  • 關閉索引
POST http://ip:端口/索引名稱/_close Kibana操作 --- POST 索引名稱/_close
  • 打開索引
POST http://ip:端口/索引名稱/_openKibana操作 --- POST 索引名稱/_open

操作映射

數據類型

簡單數據類型

  • 字符串
    • text:會分詞,不支持聚合
    • keyword:不會分詞,將全部內容作為一個詞條,支持聚合
  • 數值
  • 布爾
    • boolean
  • 二進制
    • binary
  • 范圍類型
    • integer_range, float_range, long_range, double_range, date_range
  • 日期
    • date

復雜數據類型

  • 數組:[ ]
  • 對象:{ }

操作映射

PUT /索引庫名稱/_mapping/類型名稱 {"properties": {"字段名": {"type": 類型,可以是text、keyword、longshort、date、integer、object等"index": 是否索引,默認為true"store": 是否存儲,默認為false"analyzer": 分詞器}} } PUT person {"mappings": {"properties": {"name":{"type" : "keyword"},"age":{"type" : "integer"},"address":{"type" : "text","analyzer": "ik_max_word"}}} }name: 字段【域】

操作文檔

增加文檔,ID存在,則更新,不存在,則增加

#添加文檔,指定ID PUT person/_doc/1 {"name":"張三","age":20,"address":"北京市海淀區" } #添加文檔,不指定ID POST person/_doc {"name":"張三","age":20,"address":"北京市海淀區" }ID會自動生成

刪除文檔

#刪除指定ID的文檔 DELETE person/_doc/1

查詢文檔

#查詢指定ID的文檔 GET person/_doc/1#查詢全部文檔 GET person/_search#完整語法 GET person/_search {"query": {"match_all": {}} }

基本查詢

詞條查詢:term

詞條查詢是Elasticsearch中的一個簡單查詢。它僅匹配在給定字段中含有該詞條的文檔,而
且是確切的、未經分析的詞條。最簡單的詞條查詢如下所示:

{ "query" : { "term" : { "title" : "crime" } } }

上述查詢將匹配title字段中含有crime一詞的文檔。記住,詞條查詢是未經分析的,因此需要提供跟索引文檔中的詞條完全匹配的詞條。請注意,在輸入數據中,title字段含有Crime and
Punishment,但我們使用小寫開頭的crime來搜索。因為Crime一詞在建立索引時已經變成了crime。

match_all 查詢

match_all查詢是Elasticsearch中最簡單的查詢之一。它使我們能夠匹配索引中的所有文件。

{ "query" : { "match_all" : {} } }

JavaAPI

1、SpringBoot整合ES 2、操作ES的核心客戶端RestHighLevelClient 3、操作索引核心對象 IndicesClient- 創建索引,也可以同時指定映射create(CreateIndexRequest, RequestOptions.DEFAULT)//指定映射CreateIndexRequest.mapping(映射規則,數據格式【一般為json】);- 查詢索引get(GetIndexRequest, RequestOptions.DEFAULT);- 判斷索引是否存在exists(GetIndexRequest, RequestOptions.DEFAULT);- 刪除索引get(DeleteIndexRequest, RequestOptions.DEFAULT); 4、操作文檔核心對象 IndexRequest- 創建文檔以map為數據new IndexRequest("索引名").id("文檔ID").source(數據);以對象的json為數據new IndexRequest("索引名").id("文檔ID").source(數據,數據格式【json】);使用RestHighLevelClient的index方法創建- 查詢文檔使用RestHighLevelClient的get方法查詢- 更新文檔增加文檔方法,ID相同,即為更新- 刪除文檔使用RestHighLevelClient的delete方法刪除

總結

以上是生活随笔為你收集整理的【全文搜索引擎】Elasticsearch基本查询基础JavaAPI的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。