0

Elasticsearch 2.x バージョンを使用しています。データのマッピングは次のとおりです。

"mappings":{
  "anchor_type": {
    "properties": {
      "image_url": {"type":"string"},
      "vocab": {"type":"nested"}
    }
  }
}

「vocab」は、{string, float}like、

[ {"human", 0.1}, {"dog", 0.3}, {"cat",0.5}]

私がやりたいことは、「犬」がクエリされたときに、最終スコアが 0.3 / 3 になるようにすることです。つまり、一致した用語のスコアを「語彙」の項目数で割った値です。

と を使用して 0.3 の取得function_scoreが機能script_scoreするようにしましたが、3 の取得に失敗しましたdoc['vocab'].value.size()

誰でもこれで私を助けることができますか?お願いします...

4

1 に答える 1

0

ボキャブのマッピングで token_count使用することをお勧めします。複数フィールド マッピングを使用し、フィールドのコピーにタイプを token_count として配置します。配列のサイズについては、このフィールドを参照できます。

于 2015-12-08T07:48:44.130 に答える