2017-03-07 2 views
1

에 쿼리 문이 너무 많아서 퍼지 필요 요구 사항과 여러 요구 사항이있는 와일드 카드가있는 복합 bool 쿼리를 구성하려고 할 때 실행됩니다. 이 오류 메시지. 지금까지는이 구문을 변경하지 않아도이 문제를 해결할 수있었습니다.예상치 [END_OBJECT]이지만 [FIELD_NAME]을 (를) 가져 왔을 때 가비지

쿼리가 :

{ 
    "query": { 
     "bool": { 
      "must": { 
       "fuzzy": { 
        "message": "<fuzzy string>", 
        "fuzziness": "auto" 
       } 
      }, 
      "should": [ 
      { "query": { "message": "<string>" } }, 
      { "query": { "message": "<string>" } }, 
      { "wildcard": 
       { 
        "query": { "message": "<partial string*>"} 
       } 
      } 
      ], 
      "minimum_should_match": "50%" 
     } 
    } 
} 

<> 내부의 텍스트는 내 검색 문자열로 대체됩니다.

답변

0

당신은 당신의 bool/should 절에 matchquery을 대체해야합니다

> { "query": { 
>  "bool": { 
>  "must": { 
>   "fuzzy": { 
>   "message": "<fuzzy string>", 
>   "fuzziness": "auto" 
>   } 
>  }, 
>  "should": [ 
>   {"match": {"message": "<string>"}},      <-- here 
>   {"match": {"message": "<string>"}},      <-- and here 
>   {"wildcard": {"query": {"message": "<partial string*>"}}} 
>  ], 
>  "minimum_should_match": "50%" 
>  } } } 
+0

전혀 결과를 변경하지 않은 언급 된 장소에서 "일치"에 대한 "쿼리"의 교환 : 내가 찍었을 그 \ 다시 같은 오류가 발생했습니다 –

+0

'<...>'사이의 문자열은 얼마나 걸립니까? – Val

+0

퍼지는 5 자이며 첫 번째 문자는 3이고 두 번째 문자는 6 문자이며 와일드 카드는 4 문자이며 그 다음에 와일드 카드 –