-Indexやらanalyzerやらmappingやらのお話

#contents

**analyzer [#pf74e61e]

|standard|一文字だけ|
|simple|スペース区切り|
|kuromoji|日本語の形態素解析|

**mapping [#nb72fd6d]

***mappingの基礎 [#bb20cfca]

UserAgentなどの用に空白で区切られた文字列をデフォルトで取り込むと解析されてしまい、ブラウザごとのシェアなどが正しく判定できない。全文一致のみ利用するのであればnot_analyzedを指定する。ただしそれだけだと今後は部分一致ができなくなるので部分一致用の設定も入れてあげる必要がある。Multi-Fieldと呼ばれていたが2.0以降ではやり方が違う。

-フィールドごとに型定義をし、analyzerの設定も行う

 "mappings": {
    "company": {
      "_source": {
        "enabled": true
      },
      "_all": {
        "enabled": true,
        "analyzer": "kuromoji_analyzer"
      },
      "properties": {
        "id": {
          "type": "integer",
          "index": "not_analyzed"
        },
        "name": {
          "type": "string",
          "index": "analyzed",
          "analyzer": "ngram_analyzer"
        },
        "location": {
          "type": "string",
          "index": "analyzed",
          "analyzer": "kuromoji_analyzer"
        }
      }
    },
    "project": {
      "_source": {
        "enabled": true
      },
      "_all": {
        "enabled": true,
        "analyzer": "kuromoji_analyzer"
      },
      "_parent": {
        "type": "company"
      },
      "properties": {
        "id": {
          "type": "integer",
          "index": "not_analyzed"
        },
        "title": {
          "type": "string",
          "index": "analyzed",
          "analyzer": "kuromoji_analyzer"
        }
      }
    }
  }

*参考サイト [#ac856bab]

+http://engineer.wantedly.com/2014/02/25/elasticsearch-at-wantedly-1.html

#counter


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS