首页 > 编程知识 正文

视图查询语法,oracle递归查询语法

时间:2023-05-03 10:42:29 阅读:178647 作者:2405

Filter DSL term过滤器term主要用于确定与哪个值准确匹配,例如数字、日期、布尔值或not_analyzed字符串(未分析的文本数据类型)。

{ " term " : { " age " :26 } }

{“term”: {“date”: " 2014-09-01 " }

{“term”: {“公共”:true}}

{“term”: {“tag”:“full _ text”}

在的完整示例中,hostname字段与xxx中的数据完全匹配。

{ ' query ' : { ' term ' : { ' hostname ' : ' XXX ' } } terms过滤terms与term有点类似,但terms允许您指定多个匹配条件。 如果字段指定了多个值,则必须将文档匹配在一起。

在{ ' terms ' : { ' tag ' : [ ' search '、' full_text '、' nosql' ] } }的完整示例中,所有http的状态为302、304,并且ES中的状态为数字

范围过滤范围过滤允许您在指定的范围内搜索一系列数据。

{ ' range ' : { ' age ' : { ' GTE ' :20,' lt': 30 } } }范围操作符包括:

GT:(GTE: )以上且小于lt : LTE :以下在完整的示例中,页面请求需要1秒以上的数据,upstream_rESponse_time是nginx日志es是数字类型{ ' query ' : { ' range ' : } ' upstream _ response _ time ' : { ' gt ' : } }扩展和缺少过滤扩展

{ ' exists ' : { ' field ' : ' title ' }这两个过滤只适用于已经检测到的数据,但要区分是否存在某个字段时使用。

bool筛选器bool筛选器提供了一种布尔逻辑,用于合并多个筛选条件查询结果,包括以下运算符:

must :多个查询条件的完全匹配相当于and。 must_not :多个查询条件的相反匹配相当于not。 should :中至少有一个查询条件匹配,相当于or。 这些参数可以分别继承筛选条件或筛选条件数组。

{ ' bool ' : { ' must ' : } ' term ' : { ' folder ' : ' inbox ' },' must _ not ' : { ' term ' 3360 ' '

{

“match _ all”: { }

() ) ) ) )。

此查询经常用于联接筛选条件。 例如,得到的_score为1,因为必须搜索所有邮箱,并且所有文档的相关性都相同。

match查询match查询是一种标准查询,无论是需要全文搜索查询还是需要精确查询,基本上都使用该查询。

使用match查询全文字段时,分析器会在实际查询之前分析match中的查询字符。

如果为{ ' match ' : { ' tweet ' : ' aboutsearch ' } match指定了精确的值,则在遇到数值、日期、布尔值或not_analyzed字符串时,它将搜索指定的值

{ ' match ' : { ' age ' :26 } { ' match ' : { ' date ' : ' 2014-09-01 ' } { ' match ' 3360 { ' public }

只能在指定的准确字段中搜索准确值的match查询,但必须

做的就是为它指定正确的字段名以避免语法错误。

multi_match 查询

multi_match查询允许你做match查询的基础上同时搜索多个字段,在多个字段中同时查一个:

{ "multi_match": { "query": "full text search", "fields": [ "title", "body" ] } } bool 查询

bool 查询与 bool 过滤相似,用于合并多个查询子句。不同的是,bool 过滤可以直接给出是否匹配成功, 而bool 查询要计算每一个查询子句的 _score (相关性分值)。

must:: 查询指定文档一定要被包含。must_not:: 查询指定文档一定不要被包含。should:: 查询指定文档,有则可以为文档相关性加分。

以下查询将会找到 title 字段中包含 “how to make millions”,并且 “tag” 字段没有被标为 spam。 如果有标识为 “starred” 或者发布日期为2014年之前,那么这些匹配的文档将比同类网站等级高:

{ "bool": { "must": { "match": { "title": "how to make millions" }}, "must_not": { "match": { "tag": "spam" }}, "should": [ { "match": { "tag": "starred" }}, { "range": { "date": { "gte": "2014-01-01" }}} ] } }

提示: 如果bool 查询下没有must子句,那至少应该有一个should子句。但是 如果有must子句,那么没有should子句也可以进行查询。

wildcards 查询

使用标准的shell通配符查询

参考: ES官网点击直达

以下查询能够匹配包含W1F 7HW和W2F 8HW的文档: GET /my_index/address/_search { "query": { "wildcard": { "postcode": "W?F*HW" } } }

又比如下面查询 hostname 匹配下面shell通配符的:

{ "query": { "wildcard": { "hostname": "wxopen*" } } } regexp 查询

假设您只想匹配以W开头,紧跟着数字的邮政编码。使用regexp查询能够让你写下更复杂的模式:

GET /my_index/address/_search { "query": { "regexp": { "postcode": "W[0-9].+" } } }

这个正则表达式的规定了词条需要以W开头,紧跟着一个0到9的数字,然后是一个或者多个其它字符。

下面例子是所有以 wxopen 开头的正则

{ "query": { "regexp": { "hostname": "wxopen.*" } } }

参考: ES官网点击直达

prefix 查询

以什么字符开头的,可以更简单地用 prefix,如下面的例子:

{ "query": { "prefix": { "hostname": "wxopen" } } }

参考 : ES官网点击直达

更多的查询命令,可以看:

ES官网点击直达

短语匹配(Phrase Matching)

ggdwg需要寻找邻近的几个单词时,你会使用match_phrase查询:

GET /my_index/my_type/_search{ "query": { "match_phrase": { "title": "quick brown fox" } }} 和match查询类似,match_phrase查询首先解析查询字符串来产生一个词条列表。然后会搜索所有的词条,
但只保留含有了所有搜索词条的文档,并且词条的位置要邻接。一个针对短语quick fox的查询不会匹配
我们的任何文档,因为没有文档含有邻接在一起的quick和box词条。

match_phrase查询也可以写成类型为phrase的match查询:

"match": { "title": { "query": "quick brown fox", "type": "phrase" }}

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。