如何获取按值字段不同的文档
How to get documents that are differents by value field
我正在使用 ElasticSearch 6.3。
场景:数十万个文档有“123”字段,其中大部分具有“blabla”值。少数人在那个领域有“blabla blo”。如果我设置 size: 10000 (如果是默认大小,它们不会出现),它们将占据查询结果的最后位置。但我真的想要两个独特的记录:一个具有这些字段“123”:“blabla”,另一个具有字段“123”:“blabla blo”。
我正在使用通配符并获取所有 10000 个文档。只需要那两个。
我打算将这些记录提供给 select 标签 HTML,但理想情况下只有两个!
查询正文:
{
"query": {
"wildcard":{
"324" : {
"value":"*b*"
}
}
},
"size": 10000,
"_source": ["324"]
}
我应该怎么做?我想,这个概念类似于查找在该字段中值未完全重复的记录。
谢谢
这就是 aggs 的用途!
GET index_name/_search
{
"query": {
"wildcard": {
"324": {
"value": "*b*"
}
}
},
"size": 0,
"aggs": {
"324_uniques": {
"terms": {
"field": "324",
"size": 10
}
}
}
}
field
可能是 324
或 324.keyword
,具体取决于您的映射。
我正在使用 ElasticSearch 6.3。
场景:数十万个文档有“123”字段,其中大部分具有“blabla”值。少数人在那个领域有“blabla blo”。如果我设置 size: 10000 (如果是默认大小,它们不会出现),它们将占据查询结果的最后位置。但我真的想要两个独特的记录:一个具有这些字段“123”:“blabla”,另一个具有字段“123”:“blabla blo”。
我正在使用通配符并获取所有 10000 个文档。只需要那两个。
我打算将这些记录提供给 select 标签 HTML,但理想情况下只有两个!
查询正文:
{
"query": {
"wildcard":{
"324" : {
"value":"*b*"
}
}
},
"size": 10000,
"_source": ["324"]
}
我应该怎么做?我想,这个概念类似于查找在该字段中值未完全重复的记录。 谢谢
这就是 aggs 的用途!
GET index_name/_search
{
"query": {
"wildcard": {
"324": {
"value": "*b*"
}
}
},
"size": 0,
"aggs": {
"324_uniques": {
"terms": {
"field": "324",
"size": 10
}
}
}
}
field
可能是 324
或 324.keyword
,具体取决于您的映射。