2017-05-04 4 views
2

elsticsearch dis_maxクエリをフィルタで使用する方法がわかりません。私はこれを行う場合はElasticsearch:フィルタでdismaxクエリを使用する方法

{ 
    "query": { 
     "dis_max": { 
      "queries": [{ 
       "multi_match": {} 
      }, 
      { 
       "multi_match": {} 
      }], 
      "filter": { 
       //Term filter 
      }   
     } 
    } 
} 

をITSは[dis_max]クエリは、[フィルタ]をサポートしていませんと言います。私はフィルタリングされた別名でdis_maxクエリを使用することができます。

例:以下のようにフィルタを定義してエイリアスを作成し、dis_maxクエリを実行しているときに同じエイリアスを使用すると、完全に動作します。

エイリアスを作成せずにこれを達成するには、多少の違いがあります。誰でも私にそれを行う方法を教えてもらえますか?

+0

' "multi_match":{}、' - > ' "multi_match":{}' – RoiHatam

答えて

2

誰かが答えを探しているなら、私はboolクエリのフィルタセクションとしてmustクラスとフィルタにdis_maxクエリを使ってboolクエリを使い終わらせました。

例:

{ 
    "query": { 
     "bool": { 
      "must": { 
       "dis_max": { 
        "queries": [{ 
         "multi_match": {} 
        }, 
        { 
         "multi_match": {} 
        }] 
       } 
      } 
      "filter": { 
       //Term filter 
      }   
     } 
    } 
} 
関連する問題