ES查询-基本查询

ES查询分为发散阶段和收集阶段两个阶段。查询发到一个节点,进行发散,查询过程分布在所有的节点上。每个查询的分片只返回标示符和得分。发送分散查询的节点等待所有节点查询完成后,收集结果进行适当排序并返回。

1.词条查询(term)

仅仅只匹配给定字段中含有该词条的文档。是精确的,未分析的词条。 下面的例子是查询title字段中含有crime一词的文档。

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

注意:经实验,只有title=crime时才可以查找成功。

2.多词条查询(term)

下面的例子是查询tags字段中含有novel或book的文档或两者皆有的文档。

{
		"query"	:	{
		"terms"	:	{
				"tags"	:	[	"novel",	"book"	]
		}
		}
}

3.匹配所有文件(match_all)

能够返回索引中的所有文档。

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

也可以在查询中包含加权值,加权值将赋值给所有匹配的文档。 下面的例子给所有文档加上了2.0的加权值。

{
		"query"	:	{
		"match_all"	:	{	
				"boost"	:	2.0	
		}
		}
}

4.类型查询(type)

在索引中匹配给定type的文档 下面例子是匹配是book类型的文档。

{
		"query"	:	{
		"type"	:	{
				"value"	:	"book"
		}
		}
}

5.存在查询(exists)

这种查询是匹配含有具体字段的文档。 下面的例子是查找具有tags字段的文档。

{
		"query"	:	{
		"exists"	:	{
				"field"	:	"tags"
		}
		}
}

6.不存在查询(missing)

匹配在给定字段是空值或没有值的文档。

{
		"query"	:	{
		"missing"	:	{
				"field"	:	"tags"
		}
		}
}

7.常用词查询

常用词查询是在没有停用词的情况下,为了提高查询相关性提供的一个方案。它的大体方案是:如对“crime and punishment‘中and是常用词,查询分为两组,第一词仅对常用词进行查询,然后对常用词进行查询,用来对第一次查询匹配的文档进行排序。

{
	"query"	:	{
		"common"	:	{	
			"title"	:	{
				"query"	:	"crime	and	punishment",
				"cutoff_frequency"	:	0.001
			}
		}
	}
}

8.match查询

9.query_sring查询

转载于:https://my.oschina.net/clgo/blog/666556

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值