10.term level 查询
文章目錄
- 1. term level查詢總結
- 2. 樣例
- 1 . exists query
- 2 . fuzzy query
- 3 . ids query
- 4 . prefix query
- 5 . range query
- 6 . regexp query
- 7 . term query
- 8 . terms query
- 9 . terms_set query
- 10. type query
- 11. wildcard query
1. term level查詢總結
term level 查詢不會再對query進行analysis分詞處理,直接將query當做一個一個單詞處理
1 . exists query: 這個是針對某個field是否存在的查詢,只要被查詢doc的該field的值不是null,就會放回對應的doc
2 . fuzzy query: 使用利文斯頓編輯距離來支持模糊查詢和近似查詢
3 . ids query: 使用多個doc的_id值進行查詢
4 . prefix query: 查找有特定prefix的doc
5 . range query: 范圍查找
6 . regexp query: 正則表達式查找
7 . term query: 查找某個field包含某個term的doc,不僅能用于keyword,number等類型,測試發現也能夠在text類型當中使用
8 . terms query: 查找doc的某個field包含某幾個term的doc,該doc的對應的field值需要包含一個或者多個就會被認為命中查詢
9 . terms_set query: 查找doc的某個field包含某幾個term的doc,該doc的對應的field值需要包含一定數量查詢中提供的term_set才會被認為命中查詢,這里的一定數量是可以設置的
10. type query: 因為type已經過期了,所以這個查詢也過期了
11. wildcard query: 使用模式通配符查詢
2. 樣例
1 . exists query
GET /_search {"query": {"exists": {"field": "user"}} }2 . fuzzy query
GET /_search {"query": {"fuzzy": {"user": {"value": "ki"}}} }GET /_search {"query": {"fuzzy": {"user": {"value": "ki","fuzziness": "AUTO","max_expansions": 50,"prefix_length": 0,"transpositions": true,"rewrite": "constant_score"}}} }3 . ids query
GET /_search {"query": {"ids" : {"values" : ["1", "4", "100"]}} }4 . prefix query
GET /_search {"query": {"prefix": {"user": {"value": "ki"}}} }5 . range query
GET _search {"query": {"range" : {"age" : {"gte" : 10,"lte" : 20,"boost" : 2.0}}} }6 . regexp query
GET /_search {"query": {"regexp": {"user": {"value": "k.*y","flags" : "ALL","max_determinized_states": 10000,"rewrite": "constant_score"}}} }7 . term query
GET /_search {"query": {"term": {"user": {"value": "Kimchy","boost": 1.0}}} }8 . terms query
PUT my_index {"mappings" : {"properties" : {"color" : { "type" : "keyword" }}} }PUT my_index/_doc/1 {"color": ["blue", "green"] }PUT my_index/_doc/2 {"color": "blue" }GET my_index/_search?pretty {"query": {"terms": {"color" : {"index" : "my_index","id" : "2","path" : "color"}}} }9 . terms_set query
這個稍微復雜一些
PUT /job-candidates {"mappings": {"properties": {"name": {"type": "keyword"},"programming_languages": {"type": "keyword"},"required_matches": {"type": "long"}}} }PUT /job-candidates/_doc/1?refresh {"name": "Jane Smith","programming_languages": ["c++", "java"],"required_matches": 2 }PUT /job-candidates/_doc/2?refresh {"name": "Jason Response","programming_languages": ["java", "php"],"required_matches": 2 }GET /job-candidates/_search {"query": {"terms_set": {"programming_languages": {"terms": ["c++", "java", "python"],"minimum_should_match_field": "required_matches" # 這個字段等于是動態的}}} }上面的查詢,只有doc 1會被查出來GET /job-candidates/_search {"query": {"terms_set": {"programming_languages": {"terms": ["c++", "java", "python"],"minimum_should_match_script":{"lang":"painless","source":"2"}}}} }也可以使用script操作10. type query
11. wildcard query
GET /_search {"query": {"wildcard": {"user": {"value": "ki*y","boost": 1.0,"rewrite": "constant_score"}}} }對應的如果是 kiy, kity, or kimchy都會被命中
總結
以上是生活随笔為你收集整理的10.term level 查询的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 09.span query 查询
- 下一篇: flink check-point sa