2011-11-29 3 views
7

의 오해 I는 다음과 같습니다 쿼리가 있습니다쿼리 DSL - 필터

{ 
    "query": { 
    "constant_score": 
     "filter": { 
     "missing": { 
      "field": "parent_id" 
     } 
     } 
    } 
}, 
"size": limit, 
"from": offset 
} 

내 타입이 parent_idwall_id 필드가 있습니다. parent_id이없고 wall_id이없는 모든 유형을 가져올 수 있도록이 쿼리를 수정하려면 어떻게해야합니까? 나는 문서에서 그것을 해독하는 것처럼 보일 수 없다. 모든 도움을 주셔서 감사합니다!

UPDATE

I 작동 다음 쿼리를 가지고,하지만 난 제목에 캐치 올 query을 좋아하지 않는다. 에 "캐치 올를 추가 할 필요없이이 할 수있는 방법이 있나요 당신은 거의 다

{ 
    "query":{ 
    "filtered":{ 
    "query":{ 
     "field":{ "title":"*" } 
    }, 
    "filter":{ 
     "and":{ 
      "filters":[ 
       { 
       "missing":{ "field":"parent_id" } 
       }, 
       { 
       "missing":{ "field":"wall_id" } 
       } 
      ] 
     } 
    } 
    } 
}, "size":10, "from":0 
} 

답변

7

, 당신이 당신 constant_score 쿼리 아래 and 필터를 사용할 필요가 :

{ 
    "query": { 
    "constant_score": { 
     "filter": { 
     "and":[ 
      { "missing":{ "field":"parent_id" }}, 
      { "missing":{ "field":"wall_id" }} 
     ] 
     } 
    } 
    } 
} 
+0

와우, 그건 위대한 물건. "필터"속성 주위에 중괄호를 추가해야했지만 작동합니다. 감사합니다! BTW,이 형식은 너무 까다 롭습니다, elasticsearch.org 워드 프로세서 옆에 좋은 문서의 소스가 있습니까? – swatkins

+0

으악, 고마워. 내가 아는 또 다른 자료는 없지만 내가 준 발표 자료를보기 위해 슬라이드를 확인하고 싶을 수도 있습니다. http://www.elasticsearch.org/tutorials/2011/08/28/ query-dsl-explan.html 또한 ES와 대화하는 데 어떤 클라이언트를 사용하는지 알지 못하지만 Perl에 익숙하다면 SearchBuilder를 살펴보십시오. SearchBuilder는 좀 더 압축 된 Perl입니다. '표준 ES 쿼리 dsl로 변환되는 ish 구문 : https://metacpan.org/module/ElasticSearch::SearchBuilder – DrTech

+0

node.js와 elasticsearchclient 모듈을 사용하고 있습니다. 그게 큰 도움이됩니다. 감사! – swatkins