我的映射定义中包含以下字段:

...
"my_field": {
  "type": "string",
  "index":"not_analyzed"
}
...

当我用my_field = 'test-some-another'的值索引文档时,该值分为3个术语:testsomeanother

我究竟做错了什么?

我创建了以下索引:
curl -XPUT localhost:9200/my_index -d '{
   "index": {
    "settings": {
      "number_of_shards": 5,
      "number_of_replicas": 2
    },
    "mappings": {
      "my_type": {
        "_all": {
          "enabled": false
        },
        "_source": {
          "compressed": true
        },
        "properties": {
          "my_field": {
            "type": "string",
            "index": "not_analyzed"
          }
        }
      }
    }
  }
}'

然后我索引以下文档:
curl -XPOST localhost:9200/my_index/my_type -d '{
  "my_field": "test-some-another"
}'

然后,我将https://github.com/jprante/elasticsearch-index-termlist插件与以下API结合使用: curl -XGET localhost:9200/my_index/_termlist这给了我以下回应:
{"ok":true,"_shards":{"total":5,"successful":5,"failed":0},"terms": ["test","some","another"]}

最佳答案

通过运行以下命令来验证映射是否已真正设置:
curl localhost:9200/my_index/_mapping?pretty=true
创建索引的命令似乎不正确。它不应包含"index" : {作为根元素。尝试这个:

curl -XPUT localhost:9200/my_index -d '{
  "settings": {
    "number_of_shards": 5,
    "number_of_replicas": 2
  },
  "mappings": {
    "my_type": {
      "_all": {
        "enabled": false
      },
      "_source": {
        "compressed": true
      },
      "properties": {
        "my_field": {
          "type": "string",
          "index": "not_analyzed"
        }
      }
    }
  }
}'

10-06 10:06