기본 질문은 다음과 같습니다. 중첩 된 쿼리의 모든 필드에 여러 필드 일치를 지정하는 편리한 방법이 있습니까? 일반적인 쿼리의 경우 { match : { _all : "query string" }}
이 작동합니다. 중첩 된 개체에 _all이 없기 때문에 중첩 된 쿼리에서이 기능이 작동하지 않습니다. 아래중첩 된 객체의 모든 필드에서 일치를 위해 elasticsearch 중첩 쿼리 만들기
더 자세한 질문은 다음과 같습니다
나는 "부모"라는 중첩 된 문서가 :
"Parent" : {
"properties" : {
"children" : {
"type" : "nested",
"include_in_parent" : true
}
}
}
:
{
"children" : [
{
"field_a": "value_a_1",
"field_b" : "value_b_1",
"field_c" : [ {
"field_c_a" : "value_c_a_1",
"field_c_b" : "value_c_b_1"
} ]
},
{
"field_a": "value_a_2",
"field_b" : "value_b_2",
"field_c" : [ {
"field_c_a" : "value_c_a_2",
"field_c_b" : "value_c_b_2"
} ]
}
]
}
이것은 내가 아이들 중첩 된 개체를 만드는 데 사용 매핑입니다
다음은 모든 하위 필드 검색어와 일치하는 검색어를 사용하여 몇 가지 용어를 선택하려는 검색어 및 검색어입니다.
"query" : {
"nested": {
"path" : "children",
"query" : {
"bool" : {
"must" : [
{"multi_match" : {"query": "value_c_a_1", "fields" : ["children.*"]}},
{"term" : {children.field_a : "value_a_1" }}
]
}
}
}
}
중첩 된 개체에 대한 다중 일치 쿼리의 모든 필드를 선택할 수 없어 위 쿼리가 작동하지 않습니다. 패턴 매칭을 할 수 있기 때문에
"query" : {
"nested": {
"path" : "children",
"query" : {
"bool" : {
"must" : [
{"multi_match" : {"query": "value_c_a_1", "fields" : ["*_c_a"]}}
]
}
}
}
}
쿼리 위 * 후 어떤 이유로 문자열 앞에 위치하지만 할 작품 (?)
의 모든 필드를 선택하는 좋은 속기 방법이 있나요 중첩 된 객체?
예상되는. *. 와일드 카드가 예상대로 작동하지 않는 이유를 알고있는 것도 좋습니다.