elasticsearch 怎么同时检索单 field 多个值的条件

 我来答
反转的天空之城
2018-04-09 · TA获得超过2.2万个赞
知道小有建树答主
回答量:26
采纳率:5%
帮助的人:5万
展开全部

1、 多词条查询:

多词条查询 允许匹配那些在内容中含有某些词条的文档。词条查询允许匹配单个未经分析的词条,多词条查询可以用来匹配多个这样的词条。假设想得到所有在tags字段中含有novel或book的文档。运行以下查询来达到目的:

{

"query":{

"terms":{

"tags":["novel","book"],

"minimum_match":1

}

}

}

把minimum_match属性设置为1;这意味着至少有1个词条应该匹配。如果想要查询匹配所有词条的文档,可以把minimum_match属性设置为2

2、使用bool查询来合并多个term插叙。

可以通过布尔查询来封装无限数量的查询,并通过下面描述的节点之一使用一个逻辑值来连接它们。

should:被它封装的布尔查询可能被匹配,也可能不被匹配。

被匹配的should节点数由minimum_should_match参数控,此参数的值描述了文档被视为匹配时,应该匹配的should子句的最少数量。举例来说,它可以是个整数值,比如2,也可以是个百分比,比如75%。

3、must:被它封装的布尔查询必须被匹配,文档才会返回。

4、must_not:被它封装的布尔查询必须不被匹配,文档才会返回。

{

"query":{

"bool":{

"should":{

"term":{

"title":"aa"

}

},

"should":{

"term":{

"title":"bb"

}

},

"should":{

"term":{

"title":"cc"

}

},

minimum-should-match=1

}

}

}

ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。

Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是第二流行的企业搜索引擎。

设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。 我们建立一个网站或应用程序,并要添加搜索功能,令我们受打击的是,搜索工作是很难的。我们希望我们的搜索解决方案要快,我们希望有一个零配置和一个完全免费的搜索模式,我们希望能够简单地使用JSON通过HTTP的索引数据,我们希望我们的搜索服务器始终可用,我们希望能够一台开始并扩展到数百,我们要实时搜索,我们要简单的多租户,我们希望建立一个云的解决方案。Elasticsearch旨在解决所有这些问题和更多的问题。

百度网友1d1d26d
2019-05-24 · TA获得超过592个赞
知道小有建树答主
回答量:299
采纳率:50%
帮助的人:112万
展开全部
  1. 多词条查询:

多词条查询 允许匹配那些在内容中含有某些词条的文档。词条查询允许匹配单个未经分析的词条,多词条查询可以用来匹配多个这样的词条。假设想得到所有在tags字段中含有novel或book的文档。运行以下查询来达到目的:

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


上述查询返回在tags字段中包含一个或两个搜索词条的所有文档。为什么?这是因为我们
把minimum_match属性设置为1;这意味着至少有1个词条应该匹配。如果想要查询匹配所有词条的文档,可以把minimum_match属性设置为2

2. 使用bool查询来合并多个term插叙。

可以通过布尔查询来封装无限数量的查询,并通过下面描述的节点之一使用一个逻辑值来连接它们。

  • should:被它封装的布尔查询可能被匹配,也可能不被匹配。

被匹配的should节点数目由minimum_should_match参数控,此参数的值描述了文档被视为匹配时,应该匹配的should子句的最少数量。举例来说,它可以是个整数值,比如2,也可以是个百分比,比如75%。

  • must:被它封装的布尔查询必须被匹配,文档才会返回。

  • must_not:被它封装的布尔查询必须不被匹配,文档才会返回。

{
  "query": {
    "bool": {
      "should": [
        {
          "term": {
            "title": "aa"
          }
        },
        {
          "term": {
            "title": "bb"
          }
        },
        {
          "term": {
            "title": "cc"
          }
        }
      ],
      "minimum_number_should_match": 1
    }
  }
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式