2017-04-13 12 views
0

ElasticSearch 2.3を使用して特定のバージョンIDを持つアイテムを返していないクエリが発生していました。いくつかの調査の後、バージョンIDに「#」がある場合、現在のelasticsearchクエリが動作していないように見えます。弾性検索の親IDでハッシュをエスケープしますか?

私が実行しようとしているクエリは、次のようなものです:

{ 
    "query": { 
     "constant_score": { 
      "filter": { 
       "terms": { 
        "_parent": [ 
         "faro-deployments-webservice-infrastructure|#abc123", 
         "faro-deployments-webservice-infrastructure|xyz321" 
        ] 
       } 
      } 
     } 
    } 
} 

これは正常に動作しますが、親のIDがそれに「#」文字を持つ任意の結果を除外します。 私はもう一度それを見つけるように見えることはできませんが、私はこの文脈では特定の意味を持っていると読んでいます。私は#をエスケープしようとするさまざまな方法を試しましたが、これに#文字を含むバージョンをサポートする方法があるのでしょうか?

答えて

0

以下は私のために働くようです。似たようなことをするためにクエリを変更し、 "_parent"フィールドを使用しませんでした。

{ 
    "query": { 
     "has_parent": { 
      "type": "deck", 
      "query": { 
       "constant_score": { 
        "filter": { 
         "terms": { 
          "_id": [ 
           "faro-deployments-webservice-infrastructure|#abc123", 
           "faro-deployments-webservice-infrastructure|xyz321" 
          ] 
         } 
        } 
       } 
      } 
     } 
    } 
}