elasticsearchでcopy_toを使ってみる

SolrでいうところのCopyField。全文検索で複数フィールドを束ねて検索したい時には便利です。フィールドごとにスコアブーストしたいとなると別の方法を取るしかないかな。

{
    "title": {
        "type": "string",
        "copy_to": "text"
    },
    "description": {
        "type": "string",
        "copy_to": "text"
    },
    "text": {
        "type": "string",
        "index": "analyzed",
        "analyzer": "text_ja"
    }
}

これでtextフィールドにクエリ投げればtitleかdescriptionのどちらかに適合するドキュメントが返ってくる。データ元になるtitleとかdescriptionはindexをfalseにしておけばインデックスサイズも小さくなる。elasticsearch1.7.3で動きました。