在弹性搜索索引中,我试图通过来自字段companyName和字段productName的两个不同的顶级字段值进行查询,按generatedDate字段排序,并包括domainModelId字段。
下面的SQL查询显示了所有现有值的结果,我通过generatedDate突出显示了两个唯一的文档行(在本例中);
{
"query": "SELECT companyName, productName, generatedDate FROM nextware_domain_metaservices_domainmodel ORDER BY generatedDate DESC"
}
响应如下:
我尝试了以下方法
{
"size":0,
"aggs":
{
"companies":
{
"terms":
{
"field": "companyName.keyword"
},
"aggs":
{
"products":
{
"terms":
{
"field": "productName.keyword"
}
}
}
}
}
}
这将返回正确的存储桶,如下所示;
"aggregations": {
"companies": {
"doc_count_error_upper_bound": 0,
"sum_other_doc_count": 0,
"buckets": [
{
"key": "NextWare",
"doc_count": 18,
"products": {
"doc_count_error_upper_bound": 0,
"sum_other_doc_count": 0,
"buckets": [
{
"key": "ProductPortal",
"doc_count": 16
},
{
"key": "Domain",
"doc_count": 2
}
]
}
}
]
}
}
如何包含domainModelId的值?没有第二个查询的Id字段?
包含< code>domainModelId的值。Id,您需要使用top_hits聚合
添加包含索引数据、搜索查询和搜索结果的工作示例
索引数据:
{
"companyName":"NextWare",
"productName":"Domain",
"domainModelId.Id":"i"
}
{
"companyName":"NextWare",
"productName":"Domain",
"domainModelId.Id":"c"
}
{
"companyName":"NextWare",
"productName":"ProductPortal",
"domainModelId.Id":"a"
}
{
"companyName":"NextWare",
"productName":"ProductPortal",
"domainModelId.Id":"b"
}
{
"companyName":"NextWare",
"productName":"ProductPortal",
"domainModelId.Id":"d"
}
{
"companyName":"NextWare",
"productName":"ProductPortal",
"domainModelId.Id":"e"
}
{
"companyName":"NextWare",
"productName":"ProductPortal",
"domainModelId.Id":"f"
}
{
"companyName":"NextWare",
"productName":"ProductPortal",
"domainModelId.Id":"g"
}
{
"companyName":"NextWare",
"productName":"ProductPortal",
"domainModelId.Id":"h"
}
搜索查询:
{
"size": 0,
"aggs": {
"companies": {
"terms": {
"field": "companyName.keyword"
},
"aggs": {
"products": {
"terms": {
"field": "productName.keyword"
},
"aggs": {
"top_ids": {
"top_hits": {
"_source": {
"includes": [
"domainModelId.Id"
]
},
"size": 10
}
}
}
}
}
}
}
}
搜索结果:
"aggregations": {
"companies": {
"doc_count_error_upper_bound": 0,
"sum_other_doc_count": 0,
"buckets": [
{
"key": "NextWare",
"doc_count": 9,
"products": {
"doc_count_error_upper_bound": 0,
"sum_other_doc_count": 0,
"buckets": [
{
"key": "ProductPortal",
"doc_count": 7,
"top_ids": {
"hits": {
"total": {
"value": 7,
"relation": "eq"
},
"max_score": 1.0,
"hits": [
{
"_index": "67049816",
"_type": "_doc",
"_id": "1",
"_score": 1.0,
"_source": {
"domainModelId.Id": "a"
}
},
{
"_index": "67049816",
"_type": "_doc",
"_id": "2",
"_score": 1.0,
"_source": {
"domainModelId.Id": "b"
}
},
{
"_index": "67049816",
"_type": "_doc",
"_id": "4",
"_score": 1.0,
"_source": {
"domainModelId.Id": "d"
}
},
{
"_index": "67049816",
"_type": "_doc",
"_id": "5",
"_score": 1.0,
"_source": {
"domainModelId.Id": "e"
}
},
{
"_index": "67049816",
"_type": "_doc",
"_id": "6",
"_score": 1.0,
"_source": {
"domainModelId.Id": "f"
}
},
{
"_index": "67049816",
"_type": "_doc",
"_id": "7",
"_score": 1.0,
"_source": {
"domainModelId.Id": "g"
}
},
{
"_index": "67049816",
"_type": "_doc",
"_id": "8",
"_score": 1.0,
"_source": {
"domainModelId.Id": "h"
}
}
]
}
}
},
{
"key": "Domain",
"doc_count": 2,
"top_ids": {
"hits": {
"total": {
"value": 2,
"relation": "eq"
},
"max_score": 1.0,
"hits": [
{
"_index": "67049816",
"_type": "_doc",
"_id": "3",
"_score": 1.0,
"_source": {
"domainModelId.Id": "c"
}
},
{
"_index": "67049816",
"_type": "_doc",
"_id": "9",
"_score": 1.0,
"_source": {
"domainModelId.Id": "i"
}
}
]
}
}
}
]
}
}
]
}
}
问题内容: 我正在尝试执行上述程序,但为同一程序提供了不同的值。对于给定的字符串执行多次时,是否有任何方法可以获取相同的字节? 问题答案: 在这里,您不打印a的值。正如owlstead在注释中正确指出的那样,将在字节数组上调用Object.toString()方法。导致这种格式的输出: 如果要打印数组中的每个元素,则必须遍历它。 甚至更简单,请使用以下方法:
我试图解决一个问题,我必须在搜索中得到明确的结果。 当我对最喜欢的汽车“法拉利”执行术语查询时。我得到两个名为ABC的结果。在这种情况下,我只是希望返回的结果应该是一个。所以我的要求是,如果我可以应用一个不同的on name字段来接收一个1结果。 谢啦
5.3. 多返回值 在Go中,一个函数可以返回多个值。我们已经在之前例子中看到,许多标准库中的函数返回2个值,一个是期望得到的返回值,另一个是函数出错时的错误信息。下面的例子会展示如何编写多返回值的函数。 下面的程序是findlinks的改进版本。修改后的findlinks可以自己发起HTTP请求,这样我们就不必再运行fetch。因为HTTP请求和解析操作可能会失败,因此findlinks声明了2
问题内容: 我有一个打开文件的代码,计算中值并将该值写入单独的文件。一些文件可能是空的,因此我编写了以下循环来检查文件是否为空,如果是,请跳过它,增加计数并返回循环。它对找到的第一个空文件执行预期的操作,但对第二个不执行预期的操作。循环在下面 输出如下 第二个问题是,t以某种方式从小数点后一位上升到15位,而最后一位似乎增加了小数位?感谢您提供的所有帮助 编辑 该错误 似乎仅适用于仅使用一行示例的
在我的应用程序中,有一个计算得到两个日期之间的天数。计算如下所示; 此方法在我的本地pc(windows 7,64位)上返回正确的值(即2015-03-10 00:00:00.0、2015-03-02 00:00:00.0,从存储库中检索的值为8,并传递给该方法)。但是,此方法在位于加拿大的pc(Windows 7,64位)上返回不正确的值(即2015-03-10 00:00:00.0、2015-
此处为elasticsearch新用户,但存在术语聚合问题。我为187份文档编制了索引,其中包含“名称”、“主机”、“风险”等字段。字段风险有4个唯一值(“关键”、“高”、“中”、“低”、“信息”),我正在运行这样的术语聚合: 我希望得到一个结果,说明我有x个临界值,x个高值等等。问题是,我没有得到返回的桶。 我的Elasticsearch版本是7.12.0有什么想法吗 > 编辑:这是映射: 以下