0

我有以下用于弹性搜索的映射

{
    "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 不被标记。但它是以空格标记的形式出现的。有没有办法忽略所有令牌活动?

4

1 回答 1

1

您可能facet_analyzer不仅需要设置,search_analyzer而且还需要设置index_analyzer(Elasticsearch 可能使用这个进行分面,search_analyzer仅用于解析查询字符串)。

请注意,如果您想对两者进行相同的分析,您可以analyzer在映射中使用名称。

前任 :

{
  "mappings": {
    "hotel": {
        ...
        "destination_facets": {"properties": {"en": {
            "type": "string",
            "analyzer": "facet_analyzer"
        }}}

        }
    }
},
"settings": {
    ...
}

}

于 2013-05-30T14:50:31.810 回答