gpt4 book ai didi

elasticsearch - 在elasticsearch中搜索嵌套面的值

转载 作者:行者123 更新时间:2023-12-02 22:33:38 25 4
gpt4 key购买 nike

这代表了我的映射:

{
"name": {"type": "string", "include_in_all": true},
"properties": {
"type": "nested",
"properties": {
"name": {"type": "string"},
"value": {"type": "string"}
}
}

如何使用多面搜索'properties.value'的值?这是一个示例文件:
{
"name": "Testproduct",
"properties": [{
"name": "Color",
"value": "Green"
}, {
"name": "Size",
"value": "M"
}]
}

我想通过“颜色”属性建立一个多面列表(仅)。因此结果应如下所示:
Red: 7 times
Green: 5 times
Blue: 1 times

到目前为止,这是我尝试过的:
{
"size": 1000,
"query": {
"query_string": {
"query": " ... ",
"default_operator": "AND"
}
},
"facets": {
"resolution": {
"nested": "properties",
"facet_filter": {
"term": {
"name": "Color"
}
},
"terms_stats": {
"key_field": "name",
"value_field": "value"
}
}
}
}

如果执行此搜索查询,则会收到以下响应:
FacetPhaseExecutionException[Facet [resolution]: value_field [value] isn't a number field, but a string];

我几乎不理解响应,但是我不知道我在概念上做错了什么。

最佳答案

那是因为您正在使用terms_statsterm_stats用于numbers。您应该使用terms。请尝试以下查询:

{
"size": 1000,
"query": {
"query_string": {
"query": " ... ",
"default_operator": "AND"
}
},
"facets": {
"resolution": {
"nested": "properties",
"facet_filter": {
"term": {
"name": "Color"
}
},
"terms": {
"field": "properties.value"
}
}
}
}

关于elasticsearch - 在elasticsearch中搜索嵌套面的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22251557/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com