gpt4 book ai didi

elasticsearch - 如何使用Elasticsearch 7+ Java API在对象内搜索数据

转载 作者:行者123 更新时间:2023-12-02 23:47:26 26 4
gpt4 key购买 nike

我想搜索role_id为8且status.id为5的所有文档。我的数据索引如下。

我试图仅通过role_id为8的数据获取以下查询

{
"query": {
"bool": {
"filter": [
{ "match" : {"role.role_id" : 8} }

]
}
}
}


它返回 “hits”:[] 不知道这里出了什么问题。

我是 flex 搜索的新手,我已经看到很多文档,其中提到了 嵌套对象的类型。这是强制性的吗?我需要更改索引吗?
{
"contacts": {
"aliases": {},
"mappings": {
"properties": {
"roles": {
"properties": {
"role_id": {
"type": "long"
},
"role_name": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"status": {
"properties": {
"id": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"name": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
}
}
}
}
}
}
}
}

最佳答案

这应该可以解决问题:

curl -XGET 'localhost:9200/contacts/_search?q=roles.role_id:8%20AND%20roles.status.id:5'

关于elasticsearch - 如何使用Elasticsearch 7+ Java API在对象内搜索数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60189528/

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