以下是映射
PUT index_name1
{
"settings": {
"analysis": {
"analyzer": {},
"filter": {}
}
},
"mappings": {
"test_type":{
"properties":{
"nested_one":{
"type":"nested",
"properties":{
"some_id":{
"type":"string"
}
}
},
"nested_two":{
"type":"nested",
"properties":{
"some_id":{
"type":"string"
}
}
}
}
}
}
}
以下是我索引
POST index_name1/test_type
{
"nested_one" : [{
"some_id" : 78
},
{
"some_id" : 80
},{
"some_id" : 100
}],
"nested_two" : [{
"some_id" : 79
},
{
"some_id" : 80
},{
"some_id" : 101
}]
}
以下是查詢
POST index_name1/_search
{
"query": {
"bool": {
"should": [{
"nested": {
"path": "nested_one",
"query": {
"term": {
"nested_one.some_id": {
"value": 101
}
}
}
}
}, {
"nested": {
"path": "nested_two",
"query": {
"term": {
"nested_two.some_id": {
"value": 101
}
}
}
}
}]
}
}
}
效應初探
{
"took": 6,
"timed_out": false,
"_shards": {
"total": 5,
"successful": 5,
"failed": 0
},
"hits": {
"total": 3,
"max_score": 0.9808292,
"hits": [
{
"_index": "index_name1",
"_type": "test_type",
"_id": "AVn788XeNIJY0Ao5vbA8",
"_score": 0.9808292,
"_source": {
"nested_one": [
{
"some_id": 78
},
{
"some_id": 80
},
{
"some_id": 100
}
],
"nested_two": [
{
"some_id": 79
},
{
"some_id": 80
},
{
"some_id": 101
}
]
}
},
{
"_index": "index_name1",
"_type": "test_type",
"_id": "AVn8BMr_NIJY0Ao5vbA_",
"_score": 0.9808292,
"_source": {
"title": "harley harley harley",
"nested_one": [
{
"some_id": 78
},
{
"some_id": 80
},
{
"some_id": 100
}
],
"nested_two": [
{
"some_id": 79
},
{
"some_id": 80
},
{
"some_id": 101
}
]
}
},
{
"_index": "index_name1",
"_type": "test_type",
"_id": "AVn8BKlmNIJY0Ao5vbA-",
"_score": 0.9808292,
"_source": {
"title": "harley harley",
"nested_one": [
{
"some_id": 78
},
{
"some_id": 80
},
{
"some_id": 100
}
],
"nested_two": [
{
"some_id": 79
},
{
"some_id": 80
},
{
"some_id": 101
}
]
}
}
]
}
}
文檔
希望這有助於 感謝
非常非常接近,我認爲,但nested_two.some_id和nested_one.some_id是80相同ID,因此我應該得到一擊,如果SOME_ID:80在任一nested_one或nested_two! – arturobelano
是的,它確實會以這種方式工作。您可以使用101而不是80來運行查詢 – user3775217
@arturobelano編輯了更改後的查詢和響應的帖子。謝謝 – user3775217