ES:檢索
檢索結果
{
"took": 1,
"timed_out": false,
"_shards": {
"total": 5,
"successful": 5,
"skipped": 0,
"failed": 0
},
"hits": {
"total": 6,
"max_score": 1,
"hits": [
{
"_index": "demo_index",
"_type": "book",
"_id": "SxjQ7GYBM6fTWTbSFQWh",
"_score": 1,
"_source": {
"id": 5,
"title": "Java",
"author": "david",
"content": "Java object"
}
}
]
}
}
分類 | 後設資料 | 說明 |
---|---|---|
文件屬性後設資料 | _index | 文件所屬的索引 |
文件屬性後設資料 | _id | 文件的id |
文件屬性後設資料 | _type | 文件所屬型別 |
文件屬性後設資料 | _uid | 由_type和_id欄位組成 |
文件後設資料 | _source | 文件的原生json字串 |
文件後設資料 | _size | 整個_source欄位的位元組數大小 |
索引後設資料 | _all | 自動組合所有的欄位值 |
索引後設資料 | _field_names | 索引了每個欄位的名稱 |
路由後設資料 | _parent | 指定文件之間父子關係,已過時 |
路由後設資料 | _routing | 將一個文件根據路由儲存到指定分片上 |
自定義後設資料 | _meta | 用於自定義後設資料 |
term查詢
- 單項查詢
term查詢用於查詢指定欄位中包含指定分詞的檔案,只有當查詢分詞和文件中的分詞精確匹配時才被檢索到。
curl -XPOST '192.168.1.8:9200/customer/_search' -d '
{
"query": {
"term": {
"author": "david"
}
}
}'
- 分頁
curl -XPOST '192.168.1.8:9200/customer/_search' -d '
{
"query": {
"terms": {
"author": ["david","as"]
}
},
"from":0,
"size":3
}'
- 過濾欄位
在結果中只顯示指定的欄位
curl -XPOST '192.168.1.8:9200/customer/_search' -d '
{
"_source": ["title","author"],
"query": {
"term": {
"author": "david"
}
}
}'
- 顯示version
curl -XPOST '192.168.1.8:9200/customer/_search' -d '
{
"_source": ["title","author"],
"version": true,
"query": {
"term": {
"author": "david"
}
}
}'
- 評分過濾
curl -XPOST '192.168.1.8:9200/customer/_search' -d '
{
"_source": ["title","author"],
"version": true,
"min_score":"0.5",
"query": {
"term": {
"author": "david"
}
}
}'
- 高亮關鍵字
curl -XPOST '192.168.1.8:9200/customer/_search' -d '
{
"query": {
"term": {
"author": "david"
}
},
"highlight": {
"fields": {
"author": {}
}
}
}'
match 查詢
- 詞項匹配查詢
curl -XPOST '192.168.1.8:9200/customer/_search' -d '
{
"query": {
"match": {
"author": {
"query": "david"
}
}
}
}'
- and操作符
curl -XPOST '192.168.1.8:9200/customer/_search' -d '
{
"query": {
"match": {
"author": {
"query": "jz季舟",
"operator":"and"
}
}
}
}'
必須存在“jz季舟”這個分詞
- or操作符
curl -XPOST '192.168.1.8:9200/customer/_search' -d '
{
"query": {
"match": {
"author": {
"query": "jz季舟",
"operator":"or"
}
}
}
}'
存在“jz”或者“季舟”這兩個分詞其中一個即可
- match_phrase查詢(短語查詢)
與match query類似,但用於匹配精確短語,可稱為短語查詢。
match_phrase查詢會將查詢內容分詞,分詞器可以自定義,文件中同時滿足以下兩個條件才會被檢索到:分詞後所有詞項都要出現在該欄位中;欄位中的詞項順序要一致。
curl -XPOST '192.168.1.8:9200/customer/_search' -d '
{
"query": {
"match_phrase": {
"content": "hello world"
}
}
}'
- match_phrase_prefix 查詢(字首查詢)
match_phrase_prefix與match_phrase相同,只是它允許在文字中的最後一個詞的字首匹配。也就是說,對match_phrase進行了擴充套件,查詢內容的最後一個分詞與只要滿足字首匹配即可。
curl -XPOST '192.168.1.8:9200/customer/_search' -d '
{
"query": {
"match_phrase_prefix": {
"content": "hello wor"
}
}
}'
- multi_match 查詢
multi_match查詢是match查詢的升級版,用於多欄位檢索。
curl -XPOST '192.168.1.8:9200/customer/_search' -d '
{
"query": {
"multi_match": {
"query": "object",
"fields": ["title","content"]
}
}
}'
range查詢
range查詢用於匹配數值型、日期型或字串型欄位在某一範圍內的文件。
curl -XPOST '192.168.1.8:9200/customer/_search' -d '
{
"query": {
"range" : {
"age" : {
"gte" : 10,
"lte" : 20,
"boost" : 2.0
}
}
}
}'
exists查詢
返回原始欄位中至少包含一個非空值的文件
curl -XPOST '192.168.1.8:9200/customer/_search' -d '
{
"query": {
"exists" : { "field" : "age" }
}
}'
prefix查詢
curl -XPOST '192.168.1.8:9200/customer/_search' -d '
{
"query": {
"prefix" : { "author" : "ji" }
}
}'
wildcard查詢(萬用字元查詢)
curl -XPOST '192.168.1.8:9200/customer/_search' -d '
{
"query": {
"wildcard" : { "content" : "*hello*" }
}
}'
regexp查詢(正規表示式查詢)
curl -XPOST '192.168.1.8:9200/customer/_search' -d '
{
"query": {
"regexp":{
"content": "hel.*"
}
}
}'
fuzzy查詢(模糊查詢)
curl -XPOST '192.168.1.8:9200/customer/_search' -d '
{
"query": {
"fuzzy":{
"content": "hello"
}
}
}'
type查詢
curl -XPOST '192.168.1.8:9200/customer/_search' -d '
{
"query": {
"type" : {
"value" : "book"
}
}
}'
ids查詢
curl -XPOST '192.168.1.8:9200/customer/_search' -d '
{
"query": {
"ids" : {
"values" : ["2", "3"]
}
}
}'
參考
https://blog.csdn.net/chengyuqiang/article/details/79054153
https://blog.csdn.net/chengyuqiang/article/details/79082673
https://blog.csdn.net/chengyuqiang/article/details/79091112
相關文章
- laravel Es搜尋 檢索高亮顯示Laravel
- 學習筆記(11)商品上架與ES檢索筆記
- 23個最有用的ES檢索技巧(Java API實現)JavaAPI
- ES 23 - 檢索和過濾的區別 (query vs. filter)Filter
- pta檢索
- ES 筆記二十二:多語言及中文分詞與檢索筆記中文分詞
- ES 24 - 如何通過Elasticsearch進行聚合檢索 (分組統計)Elasticsearch
- 影象檢索:資訊檢索評價指標mAP指標
- 基於ElasticSearch實現商品的全文檢索檢索Elasticsearch
- 資訊檢索
- 配置全文檢索
- 資料檢索
- ES 21 - Elasticsearch的高階檢索語法 (包括term、prefix、wildcard、fuzzy、boost等)Elasticsearch
- PostgreSQL一複合查詢SQL優化例子-(多個exists,範圍檢索,IN檢索,模糊檢索組合)SQL優化
- 分組向量檢索
- ElasticSearch入門檢索Elasticsearch
- MySQL單表檢索MySql
- 全文檢索庫 bluge
- ACM – 5.3 排序檢索ACM排序
- Kibana 全文檢索操作
- ElasticSearch進階檢索Elasticsearch
- 關鍵詞感知檢索
- 條件過濾檢索
- MySQL-檢索資料MySql
- 全文檢索的轉義
- solr全文檢索學習Solr
- 影象檢索(一)--綜述
- 【導航】資訊檢索
- [Leetcode]303.區域和檢索&&304.二維區域和檢索LeetCode
- 【高階RAG技巧】使用二階段檢索器平衡檢索的效率和精度
- GraphRAG 檢索增強+圖模型模型
- openGauss每日一練(全文檢索)
- C#漢字拼音檢索C#
- Oracle OCP(15):分層檢索Oracle
- JavaScript陣列檢索指定元素JavaScript陣列
- 一種基於概率檢索模型的大資料專利檢索方法與流程模型大資料
- 如何開通向量檢索服務?
- 向量檢索服務關聯角色