ES查询-基本查询
程序员文章站
2022-07-06 15:47:59
...
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
上一篇: ES 查询语法
下一篇: ES(三)es查询语法