在弹性搜索中,数据已保存为以下格式:
{
'name': 'somename',
'data': '{"age": 25}'
}
Run Code Online (Sandbox Code Playgroud)
如何搜索像
{"match": {"data.age": 25}}
Run Code Online (Sandbox Code Playgroud)
您需要为字段使用嵌套数据类型data,然后可以使用同一文档中给出的示例来查询嵌套字段。
简而言之,nested path如果索引正确,您需要将其包含在查询中。
"nested": {
"path": "data",
Run Code Online (Sandbox Code Playgroud)
根据您的示例添加端到端工作示例
索引映射
{
"mappings": {
"properties": {
"name" : {
"type" : "text"
},
"data": {
"type": "nested"
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
索引请求
{
"name": "somename",
"data": {
"age": 25
}
}
Run Code Online (Sandbox Code Playgroud)
搜索请求
{
"query": {
"nested": {
"path": "data",
"query": {
"match": {
"data.age": 25
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
以及搜索结果
"hits": [
{
"_index": "nested",
"_type": "_doc",
"_id": "1",
"_score": 1.0,
"_source": {
"name": "somename",
"data": {
"age": 25
}
}
}
]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8608 次 |
| 最近记录: |