国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

ElasticSearch中結(jié)構(gòu)化查詢(term、terms、range、exists、match、bool)

這篇具有很好參考價值的文章主要介紹了ElasticSearch中結(jié)構(gòu)化查詢(term、terms、range、exists、match、bool)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

term查詢

????????term 主要用于精確匹配哪些值,比如數(shù)字,日期,布爾值或 not_analyzed 的字符串(未經(jīng)分析的文本數(shù)據(jù)類型):

{ "term": { "age": 26 }} 
{ "term": { "date": "2014-09-01" }} 
{ "term": { "public": true }} 
{ "term": { "tag": "full_text" }}

當(dāng)前數(shù)據(jù)庫中的數(shù)據(jù):

ElasticSearch中結(jié)構(gòu)化查詢(term、terms、range、exists、match、bool)

POST /study/_search

# 請求數(shù)據(jù)
{
    "query": {
        "term": {
            "age": 20
        }
    }
}

# 響應(yīng)數(shù)據(jù)
{
    "took": 1,
    "timed_out": false,
    "_shards": {
        "total": 2,
        "successful": 2,
        "skipped": 0,
        "failed": 0
    },
    "hits": {
        "total": {
            "value": 1,
            "relation": "eq"
        },
        "max_score": 1.0,
        "hits": [
            {
                "_index": "study",
                "_type": "_doc",
                "_id": "SHjOVIIBpyNh4YQ4CVSN",
                "_score": 1.0,
                "_source": {
                    "name": "張三",
                    "age": 20,
                    "mail": "111@qq.com",
                    "hobby": "羽毛球、乒乓球、足球"
                }
            }
        ]
    }
}

ElasticSearch中結(jié)構(gòu)化查詢(term、terms、range、exists、match、bool)

ElasticSearch中結(jié)構(gòu)化查詢(term、terms、range、exists、match、bool)

terms查詢

????????terms 跟 term 相似,但 terms 允許指定多個匹配條件。 如果某個字段指定了多個值,那么文檔需要一起去做匹配:

{
	"terms": {
		"tag": ["search", "full_text", "nosql"]
	}
}
POST /study/_search

# 請求數(shù)據(jù)
{
    "query": {
        "terms": {
            "age": [20, 21, 22]
        }
    }
}

# 響應(yīng)數(shù)據(jù)
{
    "took": 3,
    "timed_out": false,
    "_shards": {
        "total": 2,
        "successful": 2,
        "skipped": 0,
        "failed": 0
    },
    "hits": {
        "total": {
            "value": 3,
            "relation": "eq"
        },
        "max_score": 1.0,
        "hits": [
            {
                "_index": "study",
                "_type": "_doc",
                "_id": "SXjOVIIBpyNh4YQ4CVSN",
                "_score": 1.0,
                "_source": {
                    "name": "李四",
                    "age": 21,
                    "mail": "222@qq.com",
                    "hobby": "羽毛球、乒乓球、足球、籃球"
                }
            },
            {
                "_index": "study",
                "_type": "_doc",
                "_id": "SHjOVIIBpyNh4YQ4CVSN",
                "_score": 1.0,
                "_source": {
                    "name": "張三",
                    "age": 20,
                    "mail": "111@qq.com",
                    "hobby": "羽毛球、乒乓球、足球"
                }
            },
            {
                "_index": "study",
                "_type": "_doc",
                "_id": "SnjOVIIBpyNh4YQ4CVSN",
                "_score": 1.0,
                "_source": {
                    "name": "王五",
                    "age": 22,
                    "mail": "333@qq.com",
                    "hobby": "羽毛球、籃球、游泳、聽音樂"
                }
            }
        ]
    }
}

ElasticSearch中結(jié)構(gòu)化查詢(term、terms、range、exists、match、bool)

ElasticSearch中結(jié)構(gòu)化查詢(term、terms、range、exists、match、bool)

range查詢

????????range 過濾允許按照指定范圍查找一批數(shù)據(jù)

范圍操作符包含:

  • gt :大于
  • gte :?大于等于
  • lt :?小于
  • lte :?小于等于
POST /study/_search

# 請求數(shù)據(jù)
{
    "query": {
        "range": {
            "age": {
                "gte": 20,
                "lte": 22
            }
        }
    }
}

# 響應(yīng)數(shù)據(jù)
{
    "took": 4,
    "timed_out": false,
    "_shards": {
        "total": 2,
        "successful": 2,
        "skipped": 0,
        "failed": 0
    },
    "hits": {
        "total": {
            "value": 3,
            "relation": "eq"
        },
        "max_score": 1.0,
        "hits": [
            {
                "_index": "study",
                "_type": "_doc",
                "_id": "SXjOVIIBpyNh4YQ4CVSN",
                "_score": 1.0,
                "_source": {
                    "name": "李四",
                    "age": 21,
                    "mail": "222@qq.com",
                    "hobby": "羽毛球、乒乓球、足球、籃球"
                }
            },
            {
                "_index": "study",
                "_type": "_doc",
                "_id": "SHjOVIIBpyNh4YQ4CVSN",
                "_score": 1.0,
                "_source": {
                    "name": "張三",
                    "age": 20,
                    "mail": "111@qq.com",
                    "hobby": "羽毛球、乒乓球、足球"
                }
            },
            {
                "_index": "study",
                "_type": "_doc",
                "_id": "SnjOVIIBpyNh4YQ4CVSN",
                "_score": 1.0,
                "_source": {
                    "name": "王五",
                    "age": 22,
                    "mail": "333@qq.com",
                    "hobby": "羽毛球、籃球、游泳、聽音樂"
                }
            }
        ]
    }
}

ElasticSearch中結(jié)構(gòu)化查詢(term、terms、range、exists、match、bool)

exists查詢

????????exists 查詢可以用于查找文檔中是否包含指定字段或沒有某個字段,類似于SQL語句中的 IS_NULL 條件

注意:這個查詢只是針對已經(jīng)查出一批數(shù)據(jù)來,但是想?yún)^(qū)分出某個字段是否存在的時候使用。

POST /study/_search

# 請求數(shù)據(jù)
{
    "query": {
        "exists": {
            "field": "age"
        }
    }
}

# 響應(yīng)數(shù)據(jù)
{
    "took": 2,
    "timed_out": false,
    "_shards": {
        "total": 2,
        "successful": 2,
        "skipped": 0,
        "failed": 0
    },
    "hits": {
        "total": {
            "value": 5,
            "relation": "eq"
        },
        "max_score": 1.0,
        "hits": [
            {
                "_index": "study",
                "_type": "_doc",
                "_id": "SXjOVIIBpyNh4YQ4CVSN",
                "_score": 1.0,
                "_source": {
                    "name": "李四",
                    "age": 21,
                    "mail": "222@qq.com",
                    "hobby": "羽毛球、乒乓球、足球、籃球"
                }
            },
            {
                "_index": "study",
                "_type": "_doc",
                "_id": "S3jOVIIBpyNh4YQ4CVSN",
                "_score": 1.0,
                "_source": {
                    "name": "趙六",
                    "age": 23,
                    "mail": "444@qq.com",
                    "hobby": "跑步、游泳"
                }
            },
            {
                "_index": "study",
                "_type": "_doc",
                "_id": "SHjOVIIBpyNh4YQ4CVSN",
                "_score": 1.0,
                "_source": {
                    "name": "張三",
                    "age": 20,
                    "mail": "111@qq.com",
                    "hobby": "羽毛球、乒乓球、足球"
                }
            },
            {
                "_index": "study",
                "_type": "_doc",
                "_id": "SnjOVIIBpyNh4YQ4CVSN",
                "_score": 1.0,
                "_source": {
                    "name": "王五",
                    "age": 22,
                    "mail": "333@qq.com",
                    "hobby": "羽毛球、籃球、游泳、聽音樂"
                }
            },
            {
                "_index": "study",
                "_type": "_doc",
                "_id": "THjOVIIBpyNh4YQ4CVSN",
                "_score": 1.0,
                "_source": {
                    "name": "孫七",
                    "age": 24,
                    "mail": "555@qq.com",
                    "hobby": "聽音樂、看電影"
                }
            }
        ]
    }
}

ElasticSearch中結(jié)構(gòu)化查詢(term、terms、range、exists、match、bool)ElasticSearch中結(jié)構(gòu)化查詢(term、terms、range、exists、match、bool)

match 查詢

????????match 查詢是一個標(biāo)準(zhǔn)查詢,不管需要全文本查詢還是精確查詢基本上都要用到它。
????????如果使用 match 查詢一個全文本字段,它會在真正查詢之前用分析器先分析 match 一下查詢字符。

????????如果用 match 指定了一個確切值,在遇到數(shù)字,日期,布爾值或者 not_analyzed 的字符串時,它將為搜索給定的值。

{ "match": { "age": 26 }} 
{ "match": { "date": "2014-09-01" }} 
{ "match": { "public": true }} 
{ "match": { "tag": "full_text" }}
POST  /study/_search
# 請求數(shù)據(jù)
{
    "query": {
        "match": {
            "age": "20"
        }
    }
}

# 響應(yīng)數(shù)據(jù)
{
    "took": 18,
    "timed_out": false,
    "_shards": {
        "total": 2,
        "successful": 2,
        "skipped": 0,
        "failed": 0
    },
    "hits": {
        "total": {
            "value": 1,
            "relation": "eq"
        },
        "max_score": 1.0,
        "hits": [
            {
                "_index": "study",
                "_type": "_doc",
                "_id": "SHjOVIIBpyNh4YQ4CVSN",
                "_score": 1.0,
                "_source": {
                    "name": "張三",
                    "age": 20,
                    "mail": "111@qq.com",
                    "hobby": "羽毛球、乒乓球、足球"
                }
            }
        ]
    }
}

ElasticSearch中結(jié)構(gòu)化查詢(term、terms、range、exists、match、bool)

數(shù)據(jù)庫中數(shù)據(jù):

ElasticSearch中結(jié)構(gòu)化查詢(term、terms、range、exists、match、bool)

bool查詢

bool 查詢可以用來合并多個條件查詢結(jié)果的布爾邏輯,它包含以下操作符:

  • must :?多個查詢條件的完全匹配,相當(dāng)于 and 。
  • must_not :多個查詢條件的相反匹配,相當(dāng)于 not 。
  • should :?至少有一個查詢條件匹配, 相當(dāng)于 or 。

這些參數(shù)可以分別繼承一個查詢條件或者一個查詢條件的數(shù)組:

{
	"bool": {
		"must": {
			"term": {
				"age": "20"
			}
		},
		"must_not": {
			"term": {
				"sex": "男"
			}
		},
		"should": [{
			"term": {
				"age": 25
			}
		}, {
			"term": {
				"age": 26
			}
		}]
	}
}
POST  /study/_search
# 請求數(shù)據(jù)
{
    "query": {
        "bool": {
            "must": {
                "match": {
                    "hobby": "足球"
                }
            },
            "must_not": {
                "match": {
                    "hobby": "音樂"
                }
            }
        }
    }
}

# 響應(yīng)數(shù)據(jù)
{
    "took": 20,
    "timed_out": false,
    "_shards": {
        "total": 2,
        "successful": 2,
        "skipped": 0,
        "failed": 0
    },
    "hits": {
        "total": {
            "value": 2,
            "relation": "eq"
        },
        "max_score": 1.7194062,
        "hits": [
            {
                "_index": "study",
                "_type": "_doc",
                "_id": "SHjOVIIBpyNh4YQ4CVSN",
                "_score": 1.7194062,
                "_source": {
                    "name": "張三",
                    "age": 20,
                    "mail": "111@qq.com",
                    "hobby": "羽毛球、乒乓球、足球"
                }
            },
            {
                "_index": "study",
                "_type": "_doc",
                "_id": "SXjOVIIBpyNh4YQ4CVSN",
                "_score": 1.6817665,
                "_source": {
                    "name": "李四",
                    "age": 21,
                    "mail": "222@qq.com",
                    "hobby": "羽毛球、乒乓球、足球、籃球"
                }
            }
        ]
    }
}

ElasticSearch中結(jié)構(gòu)化查詢(term、terms、range、exists、match、bool)

POST  /study/_search

# 請求數(shù)據(jù)
{
    "query": {
        "bool": {
            "should": [
                {
                    "match": {
                        "hobby": "足球"
                    }
                },
                {
                    "match": {
                        "age": 23
                    }
                }
            ]
        }
    }
}

# 響應(yīng)數(shù)據(jù)
{
    "took": 3,
    "timed_out": false,
    "_shards": {
        "total": 2,
        "successful": 2,
        "skipped": 0,
        "failed": 0
    },
    "hits": {
        "total": {
            "value": 4,
            "relation": "eq"
        },
        "max_score": 1.7194062,
        "hits": [
            {
                "_index": "study",
                "_type": "_doc",
                "_id": "SHjOVIIBpyNh4YQ4CVSN",
                "_score": 1.7194062,
                "_source": {
                    "name": "張三",
                    "age": 20,
                    "mail": "111@qq.com",
                    "hobby": "羽毛球、乒乓球、足球"
                }
            },
            {
                "_index": "study",
                "_type": "_doc",
                "_id": "SXjOVIIBpyNh4YQ4CVSN",
                "_score": 1.6817665,
                "_source": {
                    "name": "李四",
                    "age": 21,
                    "mail": "222@qq.com",
                    "hobby": "羽毛球、乒乓球、足球、籃球"
                }
            },
            {
                "_index": "study",
                "_type": "_doc",
                "_id": "S3jOVIIBpyNh4YQ4CVSN",
                "_score": 1.0,
                "_source": {
                    "name": "趙六",
                    "age": 23,
                    "mail": "444@qq.com",
                    "hobby": "跑步、游泳"
                }
            },
            {
                "_index": "study",
                "_type": "_doc",
                "_id": "SnjOVIIBpyNh4YQ4CVSN",
                "_score": 0.6038003,
                "_source": {
                    "name": "王五",
                    "age": 22,
                    "mail": "333@qq.com",
                    "hobby": "羽毛球、籃球、游泳、聽音樂"
                }
            }
        ]
    }
}

ElasticSearch中結(jié)構(gòu)化查詢(term、terms、range、exists、match、bool)文章來源地址http://www.zghlxwxcb.cn/news/detail-451207.html

到了這里,關(guān)于ElasticSearch中結(jié)構(gòu)化查詢(term、terms、range、exists、match、bool)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • ElasticSearch核心詳解、文檔、查詢響應(yīng)、分頁、映射、結(jié)構(gòu)化查詢

    ElasticSearch核心詳解、文檔、查詢響應(yīng)、分頁、映射、結(jié)構(gòu)化查詢

    在Elasticsearch中,文檔以JSON格式進(jìn)行存儲,可以是復(fù)雜的結(jié)構(gòu),如: 其中,card是一個復(fù)雜對象,嵌套的Card對象 元數(shù)據(jù)(metadata) ???????一個文檔不只有數(shù)據(jù)。它還包含了元數(shù)據(jù)(metadata)——關(guān)于文檔的信息。 三個必須的元數(shù)據(jù)節(jié)點是: index ???????索引(index)類似于關(guān)

    2024年02月12日
    瀏覽(21)
  • Elasticsearch 中的 term、terms 和 match 查詢

    目錄 term 查詢 terms 查詢 match 查詢 注意事項 結(jié)論 ? ?Elasticsearch 提供了多種查詢類型,用于不同的搜索需求。 term 、 terms 和 match 是其中最常用的一些查詢類型。下面分別介紹每種查詢類型的用法和特點。 ? term 查詢用于精確值匹配。它通常用于(keyword)類型的字段,

    2024年04月14日
    瀏覽(40)
  • elasticsearch term & match 查詢

    運行結(jié)果: 查詢結(jié)果: match_all 的值為空,表示沒有查詢條件,那就是查詢?nèi)?。就?select * from table_name 一樣。 查詢結(jié)果: match 查詢時散列映射,包含了我們希望搜索的字段和字符串,即只要文檔中有我們希望的那個,但也會帶來一些問題。 es 會將文檔中的內(nèi)容進(jìn)

    2023年04月19日
    瀏覽(24)
  • SQL:結(jié)構(gòu)化查詢語言

    SQL:結(jié)構(gòu)化查詢語言

    創(chuàng)建一張表并插入數(shù)據(jù): 以下常用函數(shù)以MySQL為例,其它數(shù)據(jù)庫類似

    2024年02月06日
    瀏覽(30)
  • Elasticsearch(十)搜索---搜索匹配功能①--查詢所有文檔和term級別查詢

    Elasticsearch(十)搜索---搜索匹配功能①--查詢所有文檔和term級別查詢

    之前的學(xué)習(xí)我們已經(jīng)了解了搜索的輔助功能,從這一章開始就是ES真正核心的功能,搜索。針對不同的數(shù)據(jù)類型,ES提供了很多搜索匹配功能:既有進(jìn)行完全匹配的term搜索,也有按照范圍匹配的range搜索;既有進(jìn)行分詞匹配的match搜索,也有按照前綴匹配的suggesr搜索。我們同樣

    2024年02月11日
    瀏覽(25)
  • ElasticSearch系列 - SpringBoot整合ES:多個精確值查詢 terms

    ElasticSearch - SpringBoot整合ES:多個精確值查詢 terms 01. ElasticSearch terms 查詢支持的數(shù)據(jù)類型 在Elasticsearch中,terms查詢支持多種數(shù)據(jù)類型,包括: 字符串類型:可以將多個字符串值作為數(shù)組傳遞給terms查詢,以匹配包含任何一個指定字符串值的文檔。 數(shù)值類型:可以將多個數(shù)值作

    2024年02月16日
    瀏覽(27)
  • MySql003——SQL(結(jié)構(gòu)化查詢語言)基礎(chǔ)知識

    DB:數(shù)據(jù)庫(Database) 即存儲數(shù)據(jù)的“倉庫”,其本質(zhì)是一個 文件系統(tǒng) 。它保存了一系列有組織的數(shù)據(jù)。 DBMS:數(shù)據(jù)庫管理系統(tǒng)(Database Management System) 是一種操縱和管理數(shù)據(jù)庫的 大型軟件 (例如我們前面下載的MySQL軟件),用于建立、使用和維護(hù)數(shù)據(jù)庫,對數(shù)據(jù)庫進(jìn)行統(tǒng)一

    2024年02月15日
    瀏覽(69)
  • 數(shù)據(jù)管理系統(tǒng)-week6-結(jié)構(gòu)化查詢語言(SQL)簡介

    Structured Query Language(SQL),本節(jié)課內(nèi)容比較輕松,主要介紹了SQL的結(jié)構(gòu)化查詢語言,簡單介紹的一些SQL的特性,功能,格式化等內(nèi)容 ?由IBM在20世紀(jì)70年代中期開發(fā)和實施 ?最初稱為SEQUEL(結(jié)構(gòu)化英語查詢語言) ?首次實施:IBM的SYSTEM R(DB/2,UDB)、Oracle SQL ?1986年的第一個

    2024年01月16日
    瀏覽(31)
  • 三、計算機(jī)理論-關(guān)系數(shù)據(jù)庫-結(jié)構(gòu)化查詢語言SQL

    SQL 概述 是一種介于關(guān)系代數(shù)與關(guān)系演算之間的語言,現(xiàn)成為關(guān)系數(shù)據(jù)庫的標(biāo)準(zhǔn)語言 特點:綜合統(tǒng)一、高度非過程化、面向集合的操作方式、以同一種語法結(jié)構(gòu)提供兩種使用方式(直接使用或者嵌入高級語言使用)、語言簡潔,易學(xué)易用。 四大功能如下: SQL功能 動詞 數(shù)據(jù)查

    2024年01月24日
    瀏覽(50)
  • 使用阿里云試用Elasticsearch學(xué)習(xí):2.1 深入搜索——結(jié)構(gòu)化搜索

    結(jié)構(gòu)化搜索(Structured search) 是指有關(guān)探詢那些具有內(nèi)在結(jié)構(gòu)數(shù)據(jù)的過程。比如日期、時間和數(shù)字都是結(jié)構(gòu)化的:它們有精確的格式,我們可以對這些格式進(jìn)行邏輯操作。比較常見的操作包括比較數(shù)字或時間的范圍,或判定兩個值的大小。 文本也可以是結(jié)構(gòu)化的。如彩色筆可

    2024年04月11日
    瀏覽(22)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包