Elasticsearch學習筆記2: _mapping

mappingweb

映射定義了一個文檔和其包含的數據如何被索引到elasticsearch中的規則,哪些字段是數字,哪些字段是字符串,哪些字段是時間格式登,定義字符串字段的分析器,定義時間字段的格式等json

獲取或者更新一個索引或者類型的映射爲_mappingapp

GET http://localhost:9200/website/blog/_mapping
{
    "bbs": {
        "mappings": {
            "thread": {
                "properties": {
                    "city_id": {
                        "type": "text",
                        "fields": {
                            "keyword": {
                                "type": "keyword",
                                "ignore_above": 256
                            }
                        }
                    },
                    "content": {
                        "type": "text",
                        "analyzer": "ik_smart"
                    },
                    "forum_id": {
                        "type": "long"
                    },
                    "publish_time": {
                        "type": "date",
                        "format": "yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis"
                    },
                    "reply_count": {
                        "type": "long"
                    },
                    "thread_id": {
                        "type": "long"
                    },
                    "title": {
                        "type": "text",
                        "analyzer": "ik_smart"
                    },
                    "user_id": {
                        "type": "long"
                    },
                    "username": {
                        "type": "text"
                    }
                }
            }
        }
    }
}

設置elasticsearch

PUT http://localhost:9200/website/blog/_mapping
{
    "bbs": {
        "mappings": {
            "thread": {
                "properties": {
                    "city_id": {
                        "type": "text",
                        "fields": {
                            "keyword": {
                                "type": "keyword",
                                "ignore_above": 256
                            }
                        }
                    },
                    "content": {
                        "type": "text",
                        "analyzer": "ik_smart"
                    },
                    "forum_id": {
                        "type": "long"
                    },
                    "publish_time": {
                        "type": "date",
                        "format": "yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis"
                    },
                    "title": {
                        "type": "text",
                        "analyzer": "ik_smart"
                    },
                    "user_id": {
                        "type": "long"
                    },
                    "username": {
                        "type": "text"
                    }
                }
            }
        }
    }
}

屬性的類型:this

  • 基礎類型text, keyword, date, long, double, boolean, ip.
  • 支持多層json格式的object, nested.
  • 其餘一些特殊類型 geo_point, geo_shape, completion

text

文本格式,索引時,會根據設置的分析器,分詞,處理字符串,分紅適合於倒排索引的獨立的詞條code

analyzer: 設置分析器,在索引時和搜索時(無設置search_analyzer時)會被用來處理字符串, 默認爲standard
search_analyzer: 設置搜索分析器,在搜索時用來處理字符串
boost: 設置字段相關性權重,搜索時影響權重值
index:  設置字段是否能夠搜索
    analyzed
        首先分析字符串,而後索引它。換句話說,以全文索引這個域。
    not_analyzed
        索引這個域,因此能夠搜索到它,但索引指定的精確值。不對它進行分析。
    no
        Don’t index this field at all不索引這個域。這個域不會被搜索到。
norms: 設置字段查詢相關度是否受字段長度影響 默認true

keyword

ignore_above: 索引的最長長度

date

format:格式("yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis")
相關文章
相關標籤/搜索