当我尝试将“not_analyzed”应用于我的ES映射时,它不起作用。

我正在Laravel中将此软件包用于ES-Elasticquent

我的映射如下:

'ad_title' => [
            'type' => 'string',
            'analyzer' => 'standard'
        ],
        'ad_type' => [
            'type' => 'integer',
            'index' => 'not_analyzed'
        ],
        'ad_type' => [
            'type' => 'integer',
            'index' => 'not_analyzed'
        ],
        'ad_state' => [
            'type' => 'integer',
            'index' => 'not_analyzed'
        ],

然后,我执行一个API get调用来查看映射,它将输出:
"testindex": {
        "mappings": {
            "ad_ad": {
                "properties": {
                    "ad_city": {
                        "type": "integer"
                    },
                    "ad_id": {
                        "type": "long"
                    },
                    "ad_state": {
                        "type": "integer"
                    },
                    "ad_title": {
                        "type": "string",
                        "analyzer": "standard"
                    },
                    "ad_type": {
                        "type": "integer"
                    },

请注意,缺少not_analyzed。
我也无法在日志中看到任何错误/警告。

最佳答案

我从自己的经验中学到的是,在进行任何索引编制之前,必须先进行映射。删除创建的索引,分配not_analyzed映射器,然后再次索引字段,您将出现not_analyzed字段。请让我知道这是否适合您。谢谢。

关于php - Elasticsearch不会将not_analyzed应用到我的映射中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28762230/

10-17 03:14