Elasticsearch facets以空格标记化

时间:2013-05-30 14:42:47

标签: elasticsearch

我有弹性搜索的以下映射

{
    "mappings": {
        "hotel": {
            'properties': {"name": {
                "type": "string",
                "search_analyzer": "str_search_analyzer",
                "index_analyzer": "str_index_analyzer"},

            "destination": {'properties': {'en': {
                "type": "string",
                "search_analyzer": "str_search_analyzer",
                "index_analyzer": "str_index_analyzer"}}},

            "country": {"properties": {"en": {
                "type": "string",
                "search_analyzer": "str_search_analyzer",
                "index_analyzer": "str_index_analyzer"}}},
            "destination_facets": {"properties": {"en": {
                "type": "string",
                "search_analyzer": "facet_analyzer"
            }}}

            }
        }
    },
    "settings": {
        "analysis": {
            "analyzer": {
                "str_search_analyzer": {
                    "tokenizer": "keyword",
                    "filter": ["lowercase"]
                },

                "str_index_analyzer": {
                    "tokenizer": "keyword",
                    "filter": ["lowercase", "substring"]
                },
                "facet_analyzer": {
                    "type": "keyword",
                    "tokenizer": "keyword"
                },
            },

            "filter": {
                "substring": {
                    "type": "edgeNGram",
                    "min_gram": 1,
                    "max_gram": 20,
                }
            }
        }
    }
}

我希望我的destination_facets不被标记化。但它是以白色空间标记化的。有没有办法忽略所有令牌活动?

1 个答案:

答案 0 :(得分:1)

您可能不仅需要为facet_analyzer设置search_analyzer,还需要为index_analyzer设置search_analyzer(Elasticsearch可能会将此项用于分面,analyzer仅用于{ "mappings": { "hotel": { ... "destination_facets": {"properties": {"en": { "type": "string", "analyzer": "facet_analyzer" }}} } } }, "settings": { ... } 解析查询字符串)。

请注意,如果您希望对两者进行相同的分析,则可以在映射中使用名称{{1}}。

前:

{{1}}

}