下面是我的搜索响应示例,检索到4个结果。
{ "took": 13, "timed_out": false, "_shards": { "total": 5, "successful": 5, "failed": 0 }, "hits": { "total": 4, "max_score": 0.41753215, "hits": [ { "_index": "google_a804f89b-d32e-426a-a79a-ea83d65c98ea", "_type": "viz_dashlet", "_id": "/shared/Report_google_Shared", "_score": 0.41753215, "fields": { "lastModified": [ 1461738428007 ], "dir": [ "/shared" ], "filename": [ "Report_google_Shared" ] }, "highlight": { "filename": [ "Report_google_Shared" ] } }, { "_index": "google_a804f89b-d32e-426a-a79a-ea83d65c98ea", "_type": "viz_dashlet", "_id": "/shared/Report_Gmail_Shared", "_score": 0.41753215, "fields": { "lastModified": [ 1461738618676 ], "dir": [ "/shared" ], "filename": [ "Report_Gmail_Shared" ] }, "highlight": { "filename": [ "Report_Gmail_Shared" ] } }, { "_index": "google_a804f89b-d32e-426a-a79a-ea83d65c98ea", "_type": "viz_dashlet", "_id": "/private/hitesh/Report_Gmail_Private", "_score": 0.1883173, "fields": { "lastModified": [ 1461738629888 ], "dir": [ "/private/hitesh" ], "filename": [ "Report_Gmail_Private" ] }, "highlight": { "filename": [ "Report_Gmail_Private" ] } }, { "_index": "google_a804f89b-d32e-426a-a79a-ea83d65c98ea", "_type": "viz_dashlet", "_id": "/private/dholaria/Report_google_Private", "_score": 0.1883173, "fields": { "lastModified": [ 1461738451720 ], "dir": [ "/private/dholaria" ], "filename": [ "Report_google_Private" ] }, "highlight": { "filename": [ "Report_google_Private" ] } } ] } }
现在,我想根据下面的标准,根据特定的“dir”字段值过滤上述搜索结果。
在且仅在以下情况下将搜索结果包含在响应中:
如何在ElasticSearch中实现上述功能?
{ "google_a804f89b-d32e-426a-a79a-ea83d65c98ea": { "mappings": { "viz_dashlet": { "properties": { "charts": { "type": "string", "index_analyzer": "report_index_analyzer", "search_analyzer": "report_search_analyzer", "fields": { "raw": { "type": "string", "index": "not_analyzed" } } }, "columnLabels": { "type": "string", "index_analyzer": "report_index_analyzer", "search_analyzer": "report_search_analyzer", "fields": { "raw": { "type": "string", "index": "not_analyzed" } } }, "columnNames": { "type": "string", "index_analyzer": "report_index_analyzer", "search_analyzer": "report_search_analyzer", "fields": { "raw": { "type": "string", "index": "not_analyzed" } } }, "creator": { "type": "string", "index_analyzer": "report_index_analyzer", "search_analyzer": "report_search_analyzer", "fields": { "raw": { "type": "string", "index": "not_analyzed" } } }, "dimensions": { "type": "string", "index_analyzer": "report_index_analyzer", "search_analyzer": "report_search_analyzer", "fields": { "raw": { "type": "string", "index": "not_analyzed" } } }, "dir": { "type": "string", "index_analyzer": "report_index_analyzer", "search_analyzer": "report_search_analyzer", "fields": { "raw": { "type": "string", "index": "not_analyzed" } } }, "expressions": { "type": "string", "index_analyzer": "report_index_analyzer", "search_analyzer": "report_search_analyzer", "fields": { "raw": { "type": "string", "index": "not_analyzed" } } }, "filename": { "type": "string", "index_analyzer": "whitespace_index", "search_analyzer": "whitespace_search", "fields": { "raw": { "type": "string", "index": "not_analyzed" } } }, "lastModified": { "type": "date", "format": "date_hour_minute_second" }, "measures": { "type": "string", "index_analyzer": "report_index_analyzer", "search_analyzer": "report_search_analyzer", "fields": { "raw": { "type": "string", "index": "not_analyzed" } } }, "promptFilters": { "type": "string", "index_analyzer": "report_index_analyzer", "search_analyzer": "report_search_analyzer", "fields": { "raw": { "type": "string", "index": "not_analyzed" } } } } } } } }
请尝试此查询:
{
"query": {
"bool": {
"should": [
{
"term": {
"dir.raw": {
"value": "/shared"
}
}
},
{
"term": {
"dir.raw": {
"value": "/private/hitesh"
}
}
},
{
"match_phrase_prefix": {
"dir.raw": "/shared"
}
},
{
"match_phrase_prefix": {
"dir.raw": "/private/hitesh"
}
}
]
}
}
}
可以对搜索结果进行过滤,只显示包含特定字段值的文档。也可以创建否定过滤器,排除包含特定字段值的文档。 从 Fields 表或 Documents 表中选择要添加的字段过滤器。除了可以创建积极字段和消极过滤器外,Documents 表还可以过滤某一字段是否存在。使用过的过滤器会在 Query 栏下方显示。消极过滤器用红色显示。 从 Fields 列表中添加一个过滤器: 点击想要过滤的字段名。这里显示
我们的表有一个嵌套的映射角色,如下所示: 现在我要查找组123中在Department1中有角色的所有文档。如何基于嵌套映射的值字段进行筛选?类似于: 我知道如何通过嵌套对象键进行筛选,但无法找到通过“对象值”进行筛选。
问题内容: 我正在使用Elasticsearch 6.6,尝试根据在日期范围内传递给查询(Bool)的多个值(email_address)提取多个结果/记录。例如:我想根据他们的email_address(annie@test.com,charles@test.com,heman@test.com)以及时期(即project_date(2019-01-01))提取有关少数雇员的信息。 我确实使用了
我试图通过根据场值提升_score来摆脱弹性搜索中的排序。这是我的场景: 我的文档中有一个字段:应用日期。这是自EPOC以来经过的时间。我希望具有更大应用日期(最近)的记录具有更高的分数。 如果两个文档的分数相同,我想在另一个字符串类型的字段上对它们进行排序。说“状态”是另一个可以有值的字段(可用、进行中、关闭)。所以,具有相同应用程序日期的文档应该根据状态_score。可用应该有更多的分数,进行
问题内容: 我希望能够查询文本,但也只能检索数据中某个整数字段的最大值的结果。我已经阅读了有关聚合和过滤器的文档,但我不太清楚自己在寻找什么。 例如,我有一些重复的数据得到索引,除了整数字段外,这些数据都是相同的-我们称这个字段为。 因此,作为示例,给定将这些数据放入elasticsearch中: 如果我查询 我会得到4个结果。我想要一个过滤器,这样我只能得到两个结果-仅包含具有最大字段的项目。
问题内容: 我有一个字典列表和每个字典的key(比方说)“型”,这可以有值,等我的目标是过滤掉这些字典到同一个字典列表,但只有一个的那些某些“类型”。我想我真的很在理解问题。 因此,示例列表如下所示: 我有一个键值列表。举例来说: 预期的结果列表如下所示: 我知道我可以用一组for循环来做到这一点。我知道必须有一个更简单的方法。我发现此问题有很多不同的风格,但没有一个完全符合要求并回答了这个问题。