我正在尝试在ElasticSearch中创建一个 布尔过滤器
,以检查start_date
和end_date
与今天进行比较。如果start_date
或end_date
为null,则仍应返回结果。
例如,今天是2016-08-09。
似乎无法使其与我当前的代码配合使用:
POST _search
{
"query":{
"filtered": {
"query": {
"match_all": {}
},
"filter" : {
"bool": {
"must": [{
"range": {
"start_date": {"lte": "2016-08-09"}
}
},
{
"range": {
"end_date": {"gte": "2016-08-09"}
}
}],
"should": [{
"missing": {
"field": "start_date"
}
},
{
"missing": {
"field": "end_date"
}
}]
}
}
}
}
}
您可能需要这样的东西,即:
start_date
必须为null或今天之前end_date
必须为null或今天之后修改后的查询:
POST _search
{
"query": {
"filtered": {
"filter": {
"bool": {
"must": [
{
"bool": {
"should": [
{
"range": {
"start_date": {
"lte": "now"
}
}
},
{
"missing": {
"field": "start_date"
}
}
]
}
},
{
"bool": {
"should": [
{
"range": {
"end_date": {
"gte": "now"
}
}
},
{
"missing": {
"field": "end_date"
}
}
]
}
}
]
}
}
}
}
}
我正在使用弹性搜索。我以前从未使用过的网络NEST客户端。我想做的是在得分前按日期范围过滤结果。 我使用对象初始值设定项语法,因为它最适合我。 我已经完成了我想要的: 这给了我一个JSON请求,就像我期望的那样: 但留档过滤查询说"弃用在2.0.0-beta1.改为使用bool查询,查询的必须子句和筛选器子句”。 因为这是我发现的唯一包含过滤器的方法,有没有更好的方法来使用嵌套对象初始值设定项语法
目前,我已经知道如何从(时间戳)日期字段中筛选日期范围。这是一个简单的问题: 但是,当你对基于时间的范围感兴趣时,如何过滤日期,比如gte:“8:00:00”和lte:“10:00:00”?这有可能吗? 换句话说,我的要求是:如何让所有事件在本月(15-11-01/15-11-30)发生,但只能在上午8:00到10:00之间发生?
问题内容: 我正在使用Elasticsearch 6.6,尝试根据在日期范围内传递给查询(Bool)的多个值(email_address)提取多个结果/记录。例如:我想根据他们的email_address(annie@test.com,charles@test.com,heman@test.com)以及时期(即project_date(2019-01-01))提取有关少数雇员的信息。 我确实使用了
问题内容: 我有一个包含整数数组的字段,例如: 我想过滤结果,以使价格至少包含介于以下之间的值列表之一: 由于价格字段中的`[20002,30000] 问题答案: Elasticsearch始终认为字段可以包含值列表,因此,范围过滤器应该起作用。如果任何值与范围匹配,它将被过滤。 您可以将该过滤器用作过滤查询的一部分: 但是,过滤查询在2.0中已弃用,因此,如果您使用的是2.0,则最好将布尔查询与
我从事elasticsearch,我尝试混合两个工作查询。第一个是“and filter”,第二个是“bool filter”,但我失败了。 我的查询是从用户交互界面动态生成的。 “和过滤器”: 我需要“和过滤器”来查询数据,例如,字段必须等于“非洲”或“亚洲”或为空。这是一个工作查询的示例: 此查询工作正常,结果如下: 现在我需要用字段“D\u TYPESTATUS”来限制结果数据,该字段必须与
我在ES中有两个问题。对于同一组文档,两者的周转时间都不同。两者在概念上都在做同样的事情。我没有什么疑问 1-这两者之间有什么区别?2-哪个更好使用?3-如果两者相同,为什么表现不同? 映射: 更新1: 我在同一组数据上尝试了bool/必须查询和bool/过滤器查询,但我发现了奇怪的行为 1-bool/必须查询能够搜索所需的文档 2-虽然bool/filter无法搜索文档。如果我删除第二个字段条件