elasticsearch 基于1个术语值查询嵌套JSON
我已经索引了JSON,格式如下 JSON:elasticsearch 基于1个术语值查询嵌套JSON,elasticsearch,kibana,elasticsearch,Kibana,我已经索引了JSON,格式如下 JSON: {"work":[{"organization":"abc", end:"present"},{"organization":"edf", end:"old"}]} {"work":[{"organization":"edf", end:"present"},{"organization":"abc", end:"old"}]} 我想查询组织为“abc”且结束为“存在”的记录 但下面的查询不起作用 work.0.organization: "abc
{"work":[{"organization":"abc", end:"present"},{"organization":"edf", end:"old"}]}
{"work":[{"organization":"edf", end:"present"},{"organization":"abc", end:"old"}]}
我想查询组织为“abc”且结束为“存在”的记录
但下面的查询不起作用
work.0.organization: "abc" AND work.0.end:"present"
没有匹配的记录
如果我给出如下的问题
work.organization: "abc" AND work.end:"present"
两个记录都匹配。而只有第一张唱片是我想要的
匹配的记录应仅限于以下内容
{"work":[{"organization":"abc", end:"present"},{"organization":"edf", end:"old"}]}
你必须使用。使用以下映射,第一个映射在elastic中作为嵌套类型工作
PUT index_name_3
{
"mappings": {
"document_type" : {
"properties": {
"work" : {
"type": "nested",
"properties": {
"organization" : {
"type" : "text"
},
"end" : {
"type" : "text"
}
}
}
}
}
}
}
使用以下查询进行嵌套筛选器匹配和
如果不更改映射,是否无法进行查询?否您必须更改映射才能使用上述查询。无论如何,工作类型是嵌套的,应该映射到嵌套否它实际上映射为
文本
。谢谢你的回答。我将看看是否有任何方法可以不改变映射,如果没有,我将标记您的作为答案。给我一天时间
{
"query": {
"nested": {
"path": "work",
"inner_hits": {},
"query": {
"bool": {
"must": [{
"term": {
"work.organization": {
"value": "abc"
}
}
},
{
"term": {
"work.end": {
"value": "present"
}
}
}
]
}
}
}
}
}