2016-04-11 8 views
0

私は以下のように人気を高めようとしています。私はElasticSearchの2.0.2バージョンを使用「フィールド[x]の値がありません」という人気エラーを表示します

{ 
    "query": { 
     "function_score": { 
     "query": { 
      "bool": { 
       "should": [ 
        { 
        "multi_match": { 
         "type": "best_fields", 
         "query": "search", 
         "fields": [       
          "Name^7", 
          "ShortDescription^6" 
         ] 
        } 
        } 
       ] 
      } 
     }, 
     "field_value_factor": { 
      "field": "OrderCount" 
     } 
     } 
    } 
} 

私は、クエリでチェック

"error": { 
     "root_cause": [ 
     { 
      "type": "exception", 
      "reason": "Missing value for field [OrderCount]" 
     } 
     ], 
     "type": "search_phase_execution_exception", 
     "reason": "all shards failed", 
     "phase": "query", 
     "grouped": true, 
     "failed_shards": [ 

としてOrderCountは決してnullではなく0、私は取得していますエラーメッセージですが、任意のNULL値があるかどうかが、クエリは結果を返しません。

{ 
    "query": { 
    "filtered": { 
     "filter": { 
     "missing": { 
      "field": "OrderCount" 
     } 
     } 
    } 
    } 
} 

私も「NULL_VALUE」を設定しようとしました:以下のように0が、それでもこのエラーメッセージ

}, 
"OrderCount": { 
"null_value": 0, 
"index": "no", 
"store": true, 
"type": "integer" 
}, 

を取得私も下の次のフィルタで私のクエリを拡張しますが、エラーが敷居あります。

"functions": [ 
      { 
       "filter":{ 
        "exists":{ 
        "field":"OrderCount" 
        } 
       }, 
       "field_value_factor": { 
        "field": "OrderCount"    
       } 
      } 
     } 

何が問題なのですか?助言がありますか?

答えて

1

Index: noの設定が問題であるとわかりました。私はそれを全く設定せず、どうして私がインデックスを設定してはいけないのか分からないときには:いいえ、これをインデックスに登録したくないからです。以下のようにすることは魅力として機能しますが、実際にはその違いを理解できません。誰か説明がある場合。私は感謝します。

"OrderCount": { 
"null_value": 0, 
"store": true, 
"type": "integer" 
}, 
関連する問題