gpt4 book ai didi

elasticsearch - Elasticsearch 嵌套对象映射和查询查询

转载 作者:行者123 更新时间:2023-12-03 02:06:57 35 4
gpt4 key购买 nike

我正在尝试使用Elastic Search,但我一直试图查询嵌套对象。

基本上我的对象是以下格式

{
"name" : "Some Name",
"field2": [
{
"prop1": "val1",
"prop2": "val2"
},
{
"prop1": "val3",
"prop2":: "val4"
}
]
}

我用于嵌套字段的映射如下。
PUT /someval/posts/_mapping
{
"posts": {
"properties": {
"field2": {
"type": "nested"
}
}
}
}

现在说我为/ field / posts / 1和/ field / posts / 2等插入元素。我对field2.prop1有k个值,我想查询一个查询,该查询根据K中field2.prop1的大多数匹配对帖子进行排序我拥有的值(value)观。什么是适当的查询。
我也尝试了一个简单的过滤器,但即使这样似乎也无法正常工作。
GET /someval/posts/_search
{
"query": {
"filtered": {
"query": {
"match_all": {}
}
},
"filter" : {
"nested" : {
"path" : "field2",
"filter" : {
"bool" : {
"must" : [
{
"term" : {"field2.prop1" : "val1"}
}
]
}
},
"_cache" : true
}
}
}
}

上面的查询应至少匹配第一篇文章。但它不返回匹配项。有人可以帮忙弄清楚这里出什么问题吗?

最佳答案

您的json结构中存在问题,您使用了过滤查询,但filter(object)与查询处于不同的级别。

找到差异。

POST /someval/posts/_search
{
"query": {
"filtered": {
"query": {
"match_all": {}
},
"filter": {
"nested": {
"path": "field2",
"filter": {
"bool": {
"must": [
{
"term": {
"field2.prop1": "val1"
}
}
]
}
},
"_cache": true
}
}
}
}
}

关于elasticsearch - Elasticsearch 嵌套对象映射和查询查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24977274/

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