Groongaでadjusterのスコアを重視して使う方法

# ``--adjuster``によるスコア調整
Groongaのselectコマンドには[adjuster](http://groonga.org/ja/docs/reference/commands/select.html#adjuster)と呼ばれるスコア調整の仕組みがあります。

これは、カラムやインデックスを検索し、スコアのみを加算するものです。

``--adjuster``は、``--query``や``--filter``の実行後に評価されるため、``adjuster``によるスコアだけでなく、
クエリ検索時のマッチスコアも加算されてしまいます。

``adjuster``によるスコアを重要視したいときに、マッチスコアが非常に大きくなると調整しにくいことがあります。

下記の例では、``tags``にある重みよりも、``body``の出現回数が多い方のスコアが高くなってしまっています。
``body``がとても大きいようなケースでは1000や10000以上になることもあるでしょう。

```bash
table_create Tags TABLE_PAT_KEY ShortText
[[0,0.0,0.0],true]
table_create Terms TABLE_PAT_KEY ShortText --default_tokenizer TokenBigram --normalizer NormalizerAuto
[[0,0.0,0.0],true]
table_create Memos TABLE_NO_KEY
[[0,0.0,0.0],true]
column_create Memos body COLUMN_SCALAR ShortText
[[0,0.0,0.0],true]
column_create Memos tags COLUMN_VECTOR|WITH_WEIGHT Tags
[[0,0.0,0.0],true]
column_create Tags memos_tags COLUMN_INDEX|WITH_WEIGHT Memos tags
[[0,0.0,0.0],true]
column_create Terms index COLUMN_INDEX|WITH_POSITION Memos body
[[0,0.0,0.0],true]
load --table Memos
[
{
  "body": "Groonga Groonga Groonga Groonga Groonga Groonga Mroonga",
  "tags": {
    "groonga": 2
  }
},
{
  "body": "Groonga Groonga Mroonga",
  "tags": {
    "groonga": 5
  }
}
]
[[0,0.0,0.0],2]
select Memos   --match_columns 'body' \
  --query "groonga" \
  --adjuster 'tags @ "groonga"' \
  --output_columns body,_score
[
  [
    0,
    0.0,
    0.0
  ],
  [
    [
      [
        2
      ],
      [
        [
          "body",
          "ShortText"
        ],
        [
          "_score",
          "Int32"
        ]
      ],
      [
        "Groonga Groonga Groonga Groonga Groonga Groonga Mroonga",
        9
      ],
      [
        "Groonga Groonga Mroonga",
        8
      ]
    ]
  ]
]
```

``body``の出現回数よりも``tags``の重みを重視したいような場合は、以下のように``match_columns``に``scorer_tf_at_most``スコアラー関数を適用すると
クエリ検索によるマッチスコアを0もしくは所定の上限値に抑えることができます。

```bash
select Memos  \
 --match_columns 'scorer_tf_at_most(body, 0)' \
 --query "groonga" \
 --adjuster 'tags @ "groonga"' \
 --output_columns body,_score
[
  [
    0,
    0.0,
    0.0
  ],
  [
    [
      [
        2
      ],
      [
        [
          "body",
          "ShortText"
        ],
        [
          "_score",
          "Int32"
        ]
      ],
      [
        "Groonga Groonga Groonga Groonga Groonga Groonga Mroonga",
        3
      ],
      [
        "Groonga Groonga Mroonga",
        6
      ]
    ]
  ]
]
```

これにより``match_columns``と``query``のスコアは0に抑えられ、``adjuster``のスコアのみが適用されました。

なお、この方法で抑えられるのは、``--query``によるスコアのみです。``--filter``によって加算されるスコア
は調整できません。

``filter``によるスコアの影響を抑えるには、``adjuster``の係数を少し大きくすることによって調整する必要があるかもしれません。


# ``--scorer``によるスコア調整

``adjuster``はカラムやインデックスを検索することによりスコアを加算することができますが、単純にカラムに入っている値をスコアに加算したい
ような場合は、``--scorer``を使うことができます。

この``--scorer``は、``--adjuster``の調整後に評価されるため、``--adjuster``の前にスコアをリセットする用途で利用することはできません。

```bash
table_create Tags TABLE_PAT_KEY ShortText
[[0,0.0,0.0],true]
table_create Terms TABLE_PAT_KEY ShortText --default_tokenizer TokenBigram --normalizer NormalizerAuto
[[0,0.0,0.0],true]
table_create Memos TABLE_NO_KEY
[[0,0.0,0.0],true]
column_create Memos body COLUMN_SCALAR ShortText
[[0,0.0,0.0],true]
column_create Memos tags COLUMN_VECTOR|WITH_WEIGHT Tags
[[0,0.0,0.0],true]
column_create Memos some_score COLUMN_SCALAR Int32
[[0,0.0,0.0],true]
column_create Tags memos_tags COLUMN_INDEX|WITH_WEIGHT Memos tags
[[0,0.0,0.0],true]
column_create Terms index COLUMN_INDEX|WITH_POSITION Memos body
[[0,0.0,0.0],true]
load --table Memos
[
{
  "body": "Groonga Groonga Groonga Groonga Groonga Groonga Mroonga",
  "tags": {
    "groonga": 2
  },
  "some_score": 100
},
{
  "body": "Groonga Groonga Mroonga",
  "tags": {
    "groonga": 5
  },
  "some_score": 10
}
]
[[0,0.0,0.0],2]
select Memos  \
 --match_columns 'scorer_tf_at_most(body, 0)' \
 --query "groonga" \
 --adjuster 'tags @ "groonga"' \
 --scorer '_score += some_score' \
 --output_columns body,_score
[
  [
    0,
    0.0,
    0.0
  ],
  [
    [
      [
        2
      ],
      [
        [
          "body",
          "ShortText"
        ],
        [
          "_score",
          "Int32"
        ]
      ],
      [
        "Groonga Groonga Groonga Groonga Groonga Groonga Mroonga",
        103
      ],
      [
        "Groonga Groonga Mroonga",
        16
      ]
    ]
  ]
]
```