【发布时间】:2021-04-15 19:13:21
【问题描述】:
我正在使用 django-elasticsearch-dsl-drf 包,并且我有想要索引的 Postgres jsonField。我尝试在文档中使用 Nestedfield,但没有任何属性,因为 json 字段是任意的,但我无法在该字段上进行搜索,并且我在他们的文档中看不到任何与此相关的内容。
知道如何实现这一目标吗?
映射:
{
"mappings": {
"_doc": {
"properties": {
"jsondata": {
"type": "nested",
"properties": {
"timestamp": {
"type": "date"
},
"gender": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"group_id": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
}, ...
我想在那个字段上搜索 jsondata.gender = x
【问题讨论】:
-
嵌套字段应该用于对象数组。在 Elasticsearch 中查询嵌套对象也有点不同。请看:elastic.co/guide/en/elasticsearch/reference/current/nested.html。由于 json 字段是任意的,如果可以尝试使用对象类型会很好。
-
我都试过了,它映射正确。但是我怎样才能在视图集中的那个字段上搜索呢? “在他们的文档中”
-
如果您能分享地图和一些示例数据,那就太好了。
-
问题已更新。与他们的文档一样,他们有“嵌套字段过滤器”,但他们知道要在其上搜索的键。对于我的情况,我不知道。感谢您的帮助!
-
查询有用吗?
标签: json django elasticsearch elasticsearch-dsl